Hallo,
mein KeyListener reagiert nicht mehr, sobald der Button angeklickt wurde.
Als erstes habe ich den Button auf setEnabled(false) gesetzt, um zu gucken, ob es generell am Button liegt, aber erst nachdem ich den Button das erste Mal angeklicke, reagiert der Keylistener nicht mehr.
Woran liegt das?
Danke schonmal für die Hilfe!
mein KeyListener reagiert nicht mehr, sobald der Button angeklickt wurde.
Als erstes habe ich den Button auf setEnabled(false) gesetzt, um zu gucken, ob es generell am Button liegt, aber erst nachdem ich den Button das erste Mal angeklicke, reagiert der Keylistener nicht mehr.
Woran liegt das?
Java:
package programm;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextField;
public class kkk {
static Boolean space = false;
static JButton play;
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame mainframe = new JFrame();
mainframe.setBounds(250, 70, 900, 500);
JPanel mainpanel = new JPanel();
mainpanel.setBackground(Color.gray);
mainpanel.setLayout(null);
mainframe.add(mainpanel);
JMenuBar bar = new JMenuBar();
bar.setBounds(0, 0, 1366, 23);
mainpanel.add(bar);
JMenuItem spaufnehmen = new JMenuItem("bla");
bar.add(spaufnehmen);
play = new JButton("play");
play.setBounds(10, 50, 20, 20);
play.setEnabled(false);
mainpanel.add(play);
mainframe.setVisible(true);
mainframe.addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
if (e.getKeyCode() == 32) { // 32 = leertaste
space = true;
System.out.println("pressed");
}
}
});
spaufnehmen.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
Thread tt = new Thread(){
public void run(){
while (!space) {
try {
if (space) {
break;
}
Thread.sleep(1000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
System.out.println("hi");
play.setEnabled(true);
}
};
space = false;
tt.start();
};
});
}
}