Hallo Leute!
Ich habe ein Problem und ich hoffe, ihr könnt mir helfen. In meinem Java Programm frage ich sowohl die Maus als auch Tastatureingaben ab. Aber komischerweise werden Tastatureingaben nicht angenommen. Erst wenn ich vorher einen Mausklick tätige, wird das Drücken der Taste erkannt.
Den verkürzten Quelltext findet ihr hier:
Das Programm funktioniert so, dass zunächst der Einstiegsbutton bestätigt werden muss. Danach wird auf die Tastatureingabe gewartet und sobald die Taste "x" gedrückt wird, sollte ein roter Kreis erscheinen. Leider funktioniert das aber nur, wenn kurz vorher die Maustaste gedrückt wurde.
Könnt ihr mir helfen? Habt ihr eine Ahnung, was ich falsch mache?
Gruß,
Bud
Ich habe ein Problem und ich hoffe, ihr könnt mir helfen. In meinem Java Programm frage ich sowohl die Maus als auch Tastatureingaben ab. Aber komischerweise werden Tastatureingaben nicht angenommen. Erst wenn ich vorher einen Mausklick tätige, wird das Drücken der Taste erkannt.
Den verkürzten Quelltext findet ihr hier:
Java:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Image;
public class at2b extends Applet implements ActionListener, KeyListener {
private static final long serialVersionUID = 1L;
int width, height;
Graphics buffergrafikausgabe,g2;
Image buffergrafik;
Button okButton, nextButton;
public void init() {
width = getSize().width;
height = getSize().height;
buffergrafik = createImage(width, height); // Hier wird ein(nichtangezeigtes) Bild im Arbeitsspeicher gezeichnet
buffergrafikausgabe = buffergrafik.getGraphics();
setLayout(null);
okButton = new Button("GO");
okButton.setBounds(((width / 2) - (32 / 2)), ((height / 2) - (32 / 2)), 32, 18);
add(okButton);
okButton.addActionListener(this);
addKeyListener(this);}
public void actionPerformed(ActionEvent e) { remove(okButton);}
public void paint(Graphics g) {
buffergrafikausgabe.setColor(Color.blue);
g.drawImage(buffergrafik, 0, 0, this); }
public void update(Graphics g) {paint(g);}
public void keyPressed(KeyEvent e) {
if (e.getKeyChar() == 'x') {
buffergrafikausgabe.setColor(Color.blue);
buffergrafikausgabe.drawRoundRect(25, 50, 25, 25, 25, 50);
repaint(); } }
public void keyReleased(KeyEvent arg0) {}
public void keyTyped(KeyEvent arg0) {}
}
Das Programm funktioniert so, dass zunächst der Einstiegsbutton bestätigt werden muss. Danach wird auf die Tastatureingabe gewartet und sobald die Taste "x" gedrückt wird, sollte ein roter Kreis erscheinen. Leider funktioniert das aber nur, wenn kurz vorher die Maustaste gedrückt wurde.
Könnt ihr mir helfen? Habt ihr eine Ahnung, was ich falsch mache?
Gruß,
Bud