Hallo,
ich programmiere gerade eine GUI, welche mehrere Buttons hat.
Mein Drücken des Leertaste sowie beim Drücken eines bestimmten Buttons soll eine bestimmte Funktion ausgeführt werden.
Leider habe ich das Problem, daß beim Drücken der Leertaste nur dann die gewünschte Funktion ausgeführt wird, wenn ich kurz zuvor auch auf den bestimmten Button gedrückt habe, ansonsten wird beim Drücken dieser Taste immer die Funktion des zuletzt gedrückten Buttons ausgeführt.
Nach meinen bisherigen Recherchen muß ich anscheinend den Button mit dieser Leertaste fokkusieren. Aber wie mache ich das in meinem Programm?
In der Klasse GUI werden die Buttons wie folgt programmiert:
ich programmiere gerade eine GUI, welche mehrere Buttons hat.
Mein Drücken des Leertaste sowie beim Drücken eines bestimmten Buttons soll eine bestimmte Funktion ausgeführt werden.
Leider habe ich das Problem, daß beim Drücken der Leertaste nur dann die gewünschte Funktion ausgeführt wird, wenn ich kurz zuvor auch auf den bestimmten Button gedrückt habe, ansonsten wird beim Drücken dieser Taste immer die Funktion des zuletzt gedrückten Buttons ausgeführt.
Nach meinen bisherigen Recherchen muß ich anscheinend den Button mit dieser Leertaste fokkusieren. Aber wie mache ich das in meinem Programm?
In der Klasse GUI werden die Buttons wie folgt programmiert:
Java:
public class GUI extends JFrame implements ActionListener {
…...
…..
private Action action;
…....
…....
JPanel v2Box = new JPanel(new GridLayout(3, 1));
autoButton = new JButton("automatisch");
autoButton.setActionCommand("auto");
autoButton.addActionListener(action);
autoButton.setEnabled(true);
v2Box.add(autoButton);
manuButton = new JButton("manuell");
manuButton.setActionCommand("manu");
manuButton.addActionListener(action);
manuButton.setEnabled(true);
v2Box.add(manuButton);
spaceButton = new JButton("Leertaste");
spaceButton.addKeyListener(action);
spaceButton.setActionCommand("leer");
spaceButton.addActionListener(action);
spaceButton.setEnabled(true);
v2Box.add(spaceButton);
In der Klasse Action werden dann die folgenden Funktionen ausgeführt:
public class Action extends JComponent implements ComponentListener,
ActionListener, KeyListener {
…......
….......
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand() == "auto") {
manuell = false;
enterGedr = false;
System.out.println("auto gedrueckt " + manuell);
}
else if (e.getActionCommand() == "manu") {
manuell = true;
enterGedr = false;
System.out.println("manu gedrueckt " + manuell);
}
else if (e.getActionCommand() == "leer") {
enterGedr = true;
System.out.println("Leer gedrueckt");
}
}
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_SPACE) {
enterGedr = true;
System.out.println("Leertaste gedrueckt");
}
}
public void keyTyped(KeyEvent e) {}
public void keyReleased(KeyEvent e) {}
}
Zuletzt bearbeitet von einem Moderator: