KeyEvent
EneR
- java
0 Slyh
Hallo,
Ich habe ja mein Problem schon einmal geschildert, ich möchte herausfinden, welche Taste, bzw ob der der Benutzer eine TAste Drückt.
ICh habe dazu schon einigen Schönen Quelltext gefunden, und auf meine Bedürfnisse zugeschnitten. Allerdings bekomme ich folgenden Script nicht so hin, das ich eine "public char KeyEvent () {}" (wie nennt man sowas nochmal *peinlich*) hab die den gedrückten Buchstaben zurückgibt?
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class Main extends Applet implements Runnable, KeyListener, MouseListener, MouseMotionListener
{
private int speed;
int currentLine;
// Spielthread
private Thread th;
// Variablen für die Doppelpufferung
private Image dbImage;
private Graphics dbg;
public void init()
{
setBackground(Color.blue);
currentLine = 10;
addKeyListener(this);
}
public void start()
{
// Schaffen eines neuen Threads, in dem das Spiel läuft
th = new Thread(this);
// Starten des Threads
th.start ();
}
public void stop()
{
// Thread stoppen
th.stop();
// Thread auf null setzen
th = null;
}
public void keyPressed(KeyEvent e)
{
getGraphics().drawString("User pressed key " + e.getKeyChar(), 10, currentLine);
currentLine+=20;
}
public /*char*/void keyReleased(KeyEvent e)
{
getGraphics().drawString("User released key " + e.getKeyChar(), 10, currentLine);
char Answer = e.getKeyChar();
currentLine+=20;
//return Answer;
}
public void keyTyped(KeyEvent e)
{
}
public void run()
{
// Solange true ist läuft der Thread weiter
while (true)
{
paint(getGraphics());
}
}
/** Update - Methode, Realisierung der Doppelpufferung zur Reduzierung des Bildschirmflackerns */
public void update (Graphics g)
{
// no double buffering
}
public void paint(Graphics g)
{
if(currentLine >380)
{
g.setColor(Color.blue);
g.fillRect(0, 0, 300, 300);
currentLine = 10;
}
g.setColor(Color.yellow);
}
}
Bitte um etwas Nachsicht, ich bin erst 14 *g*
Frohe Weihnachten:
Ener
Hallo,
Ich habe ja mein Problem schon einmal geschildert, ich möchte herausfinden, welche Taste, bzw ob der der Benutzer eine TAste Drückt.
Was willst du machen, wenn das passiert?
ICh habe dazu schon einigen Schönen Quelltext gefunden, und auf meine Bedürfnisse zugeschnitten. Allerdings bekomme ich folgenden Script
Das ist kein Skript, sondern ein Programm in Form eines Applets.
nicht so hin, das ich eine "public char KeyEvent () {}" (wie nennt man sowas nochmal *peinlich*) hab die den gedrückten Buchstaben zurückgibt?
Das, was du da schreibst, nennt sich Methode.
Aber: Was man von der Java-API unter diesem Namen ("KeyEvent") kennt,
ist eine Klasse. Ein Objekt dieser Klasse wird z.B. an die untenstehenden
KeyListener-Methoden übergeben. Darin befinden sich Informationen über
die betroffene Taste usw.
Weil das eine Methode ist, die von der Java-API aufgerufen wird und weil
diese außerdem genau so im Interface KeyListener definiert ist, kannst
(und willst) du gar nichts am Rückgabewert ändern.
Du kannst dir einfach die gedrückte Taste merken oder direkt auf den
Tastendruck reagieren. (In den Methode keyPressed(), z.B.)
Hierzu läßt du dir von dem KeyEvent-Objekt den Key-Code bzw. den Key-Char
geben, fragst ab ob es der richtige ist und machst dann etwas als Reaktion
darauf.
Bitte um etwas Nachsicht, ich bin erst 14 *g*
Wenn ich mir deinen Code anschaue, habe ich eher das Gefühl, daß du nie
ein Java-Buch (von vorne) gelesen hast. Das solltest du schleunigst
nachholen. Mit trial-and-error kommt man in manchen Programmierensprachen
weit. In Java aber eher nicht. Beschäftige dich mit den grundlegenden
Konzepten, wie z.B. auch Klassen, Objekten, Methoden, Schnittstellen,
Listenern. Erst danach würde ich sehr langsam anfangen AWT oder Swing
zu verstehen.
Falls du kein Java-Buch hast, findest du mind. 2 kostenlose im Internet:
Das Javabuch
Java ist auch eine Insel
Gruß
Slyh