Hallo,
ich habe mich wieder der Java gewidmet und stoße auf kleine Probleme.
Habe ein Fenster mit 5 Buttons und einem JComboBox. Das ganzes ist ein Schlagzeuggenerator.
Mit den Elementen (Buttons, JComboBox) kann man verschiedene Bits- Varianten generieren.
Zusätzlich möchte ich zusätzliche Instrumente manuell mit der Tastatur dazu steuern. Dafür habe ich mir den KeyListener implementiert. Das Interfaces habe ich der Frame- Klasse bekanntgemacht. Alles ok und funktioniert.
Nun wenn ich z.B. alles schneller oder langsamer mache (z.B. Button_Langsamer drücke) verliere ich den Focus und die Tastatur reagiert nicht - das Programm reagiert auf die Tastatur nicht. Wen ich dem Button_Langsamer den Fockus "erteile" <code> Button_Langsamer.requestFocus(); </code> wird die Tastatur wieder anerkannt.
Wenn ich den allen Komponenten immer wieder den requestFocus() am ende des Codes implementiere funktioniert alles. Ist auch kein Problem, ABER - kann man das irgendwie nicht schöner Lösen?
Gruß
Georg
ich habe mich wieder der Java gewidmet und stoße auf kleine Probleme.
Habe ein Fenster mit 5 Buttons und einem JComboBox. Das ganzes ist ein Schlagzeuggenerator.
Mit den Elementen (Buttons, JComboBox) kann man verschiedene Bits- Varianten generieren.
Zusätzlich möchte ich zusätzliche Instrumente manuell mit der Tastatur dazu steuern. Dafür habe ich mir den KeyListener implementiert. Das Interfaces habe ich der Frame- Klasse bekanntgemacht. Alles ok und funktioniert.
Nun wenn ich z.B. alles schneller oder langsamer mache (z.B. Button_Langsamer drücke) verliere ich den Focus und die Tastatur reagiert nicht - das Programm reagiert auf die Tastatur nicht. Wen ich dem Button_Langsamer den Fockus "erteile" <code> Button_Langsamer.requestFocus(); </code> wird die Tastatur wieder anerkannt.
Wenn ich den allen Komponenten immer wieder den requestFocus() am ende des Codes implementiere funktioniert alles. Ist auch kein Problem, ABER - kann man das irgendwie nicht schöner Lösen?
Code:
public class My_Drum22 extends JFrame implements ActionListener, ControlContext, MetaEventListener, KeyListener {
...
this.addKeyListener(this);
this.setFocusable(true);
this.requestFocusInWindow();
...
// read the Keyboard (KeyListener)
this.requestFocus();
...
private void Button_LangsamerActionPerformed(java.awt.event.ActionEvent evt) {
intTempo +=5;
setTempo(intTempo);
methodeXXX();
// read the Keyboard (KeyListener)
Button_Langsamer.requestFocus();
...
}
...
// Oder im anderen Fall
methodeXXX();
ZZZ.requestFocus();
...
Gruß
Georg