KeyListener und JButton vertragen sich nicht

gbunge

Aktives Mitglied
Hallo Java-Gurus,
mein Problem ist ein JButton in einem JPanel!
Der KeyListener im MainFrame funktioniert nur solange, wie der JButton im Panel nicht
instanziiert ist. ( auskommentierte JPanel.add-Methode in interner Klasse 'SwitchPanel' ).
Kann mir jemand helfen?

Java:
package keytest;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class KeyTest extends JPanel implements KeyListener {
  JFrame   frame;
  String   mes = "drücke Pfeiltasten";
  public KeyTest() {
    setPreferredSize( new Dimension( 660, 1140 ));
    setBackground( Color.yellow );

    frame = new JFrame();
    frame.setBounds( 1400, 0, 800, 1140 );
    frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    frame.setLayout( new BorderLayout());
   
    doInit();
  }
 
  private void doInit() {
    frame.addKeyListener( this );
    frame.add( "Center", this );
    frame.add( "East", new SwitchPanel( this ));
    frame.setVisible( true );
  }

  public void dispatch( String e ) {
    if( e == "0") System.exit(0);
  }
 
  @Override public void paintComponent( Graphics g ){
    super.paintComponent( g );
    g.setColor( Color.red );
    g.setFont( new Font( "helvetica", Font.ITALIC, 24 ));
    g.drawString( mes, 300, 300 );
  }

  @Override public void keyPressed(KeyEvent e) {
    int code = e.getKeyCode();
    if( code == KeyEvent.VK_ENTER ) System.exit(0);
    if( code == KeyEvent.VK_LEFT ) mes = "linker Pfeil";
    if( code == KeyEvent.VK_RIGHT) mes = "rechter Pfeil";
    repaint();
  }
  @Override public void keyReleased(KeyEvent e) {
  }
  @Override public void keyTyped(KeyEvent e) {
  }

  public static void main(String[] args) {
    new KeyTest();
  }
 
  // Kontroll-Panel-Klasse ++++++++++++++++++++
  public class SwitchPanel extends JPanel  implements ActionListener {
    KeyTest                pa;

    public SwitchPanel( KeyTest p ) {
      pa = p;
      setPreferredSize( new Dimension( 140, 1140 ));
      setBackground( Color.cyan );
      setLayout( new BorderLayout());

      // Label oben +++++++++++++++++++++++++
      JLabel lab = new JLabel("JLabel");
      lab.setPreferredSize( new Dimension( 140, 50 ));
      lab.setFont( new Font( "monaco", Font.PLAIN, 20 ));
      lab.setHorizontalAlignment( JLabel.CENTER );
     
      // Schalter unten +++++++++++++++++++++
      JPanel anz = new JPanel();
      anz.setPreferredSize( new Dimension( 140, 50 ));
      anz.setBackground( Color.red );
//      anz.add( makeButton());
     
      // Panel in der Mitte +++++++++++++++++
      JPanel zzz = new JPanel();
      zzz.setBackground( Color.blue );

      // Componenten einhängen ++++++++++++++
      add( "North", lab );
      add( "South", anz);
      add( "Center", zzz );
    }
 
    private JButton makeButton() {
      JButton bu = new JButton( "EXIT" );
      bu.addActionListener( this );
      bu.setActionCommand("0");
      bu.setFont( new Font("monaco", Font.PLAIN, 18 ));
      bu.setPreferredSize( new Dimension( 140, 40 ));
      return bu; 
    }

    @Override public void actionPerformed( ActionEvent e ) {
      pa.dispatch( e.getActionCommand());
    }
  }
}

Danke für eure Hilfe.
GBunge
 

Robat

Top Contributor
Du musst deinem Button einfach nur mit setFocusable(false) den Focus wegnehmen. Dann sollte auch der KeyListener wieder funktionieren.

Off-Topic:
Strings vergleicht man mit equals(String s) und nicht mit == ;)

Gruß Robert
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Wie kann ich meine Keylistener Klasse unterscheiden lassen, von welcher "Quelle" der Input kommt? Java Basics - Anfänger-Themen 2
B Bild per KeyListener drehen Java Basics - Anfänger-Themen 1
javalux123 Keylistener auf andere Fenster Java Basics - Anfänger-Themen 3
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
M KeyListener reagiert nicht Java Basics - Anfänger-Themen 4
M Mit KeyListener Farbe von Label ändern Java Basics - Anfänger-Themen 13
N Java Keylistener Java Basics - Anfänger-Themen 2
B KeyListener funkioniert nicht Java Basics - Anfänger-Themen 2
F KeyListener Java Basics - Anfänger-Themen 3
S Erste Schritte 2D Grafik Probleme mit KeyListener. Java Basics - Anfänger-Themen 18
J-Gallus Keylistener verstehen Java Basics - Anfänger-Themen 17
S Keylistener Java Basics - Anfänger-Themen 16
S Keylistener im Grafikfenster Java Basics - Anfänger-Themen 3
H Mouse- und KeyListener Probleme? Java Basics - Anfänger-Themen 5
N KeyListener in Thread Java Basics - Anfänger-Themen 0
LexeB4F for schliefe in KeyListener Java Basics - Anfänger-Themen 3
R KeyListener auslagern Java Basics - Anfänger-Themen 3
J KeyListener aus anderer Klasse bereitet Probleme Java Basics - Anfänger-Themen 1
Z KeyListener funktioniert nicht? Weshalb? Java Basics - Anfänger-Themen 8
T KeyListener Java Basics - Anfänger-Themen 2
Gfreak23 Input/Output KeyListener funktioniert auf Laptop nicht allerdings auf Tower-PC Java Basics - Anfänger-Themen 8
J KeyListener - mal wieder... Java Basics - Anfänger-Themen 2
TheSorm KeyListener Problem Java Basics - Anfänger-Themen 4
M KeyListener Java Basics - Anfänger-Themen 3
S KeyListener/ActionListener/paint()/repaint() Java Basics - Anfänger-Themen 3
D KeyListener nicht mehr aktiv nach ActionPerformed Java Basics - Anfänger-Themen 2
C Mehrere Tasten beim KeyListener gleichzeitig lesen Java Basics - Anfänger-Themen 2
L Input/Output Java 3D mit KeyListener Java Basics - Anfänger-Themen 1
S KeyListener reagiert nicht. Java Basics - Anfänger-Themen 4
L KeyListener ohne textfeld Java Basics - Anfänger-Themen 4
J KeyListener,MouseListener,MouseMotionListener und static Java Basics - Anfänger-Themen 7
P Klassen Bei KeyEvent in KeyListener den Tastendruck abbrechen Java Basics - Anfänger-Themen 5
B KeyListener als allgemeine Methode Java Basics - Anfänger-Themen 5
H KeyListener auf ganzes Fenster setzen Java Basics - Anfänger-Themen 14
0 KeyListener ausserhalb der Applikation Java Basics - Anfänger-Themen 5
G KeyListener Java Basics - Anfänger-Themen 4
D KeyListener und ActionListener Problem Java Basics - Anfänger-Themen 6
J KeyListener funtioniert nicht! Java Basics - Anfänger-Themen 3
J KeyListener Java Basics - Anfänger-Themen 11
P Input/Output KeyListener reagiert nicht Java Basics - Anfänger-Themen 4
G KeyListener, Fokus Java Basics - Anfänger-Themen 8
K Input/Output KeyListener funktioniert nicht Java Basics - Anfänger-Themen 3
A Input/Output Keylistener Aktiv schalten Java Basics - Anfänger-Themen 8
J keyListener - Genau 1 Aktion soll bei 1 Tastenausdruck ausgeführt werden Java Basics - Anfänger-Themen 11
S KeyListener Java Basics - Anfänger-Themen 2
A Erste Schritte Problem mit KeyListener Java Basics - Anfänger-Themen 6
Maxim6394 KeyListener geht nicht Java Basics - Anfänger-Themen 15
A Wie KeyListener adden? Java Basics - Anfänger-Themen 15
Maxim6394 KeyListener funktioniert nicht Java Basics - Anfänger-Themen 20
U KeyListener StackOverflowError Java Basics - Anfänger-Themen 2
W KeyListener auf Applet mit Runnable Java Basics - Anfänger-Themen 4
M Apfel-Spiel KeyListener Java Basics - Anfänger-Themen 33
J KeyListener (keyTyped) funktioniert nicht Java Basics - Anfänger-Themen 9
Luk10 KeyListener Java Basics - Anfänger-Themen 13
S KeyListener aus anderer Klasse hinzufügen Java Basics - Anfänger-Themen 19
P KeyListener im Applet Java Basics - Anfänger-Themen 2
S KeyListener-Anwendung Java Basics - Anfänger-Themen 7
O KeyListener funktioniert nur wenn er will Java Basics - Anfänger-Themen 2
A KeyListener funzt ned Java Basics - Anfänger-Themen 6
D KeyListener, Unterscheidung Groß/Kleinbuchstaben Java Basics - Anfänger-Themen 3
S KeyListener als class? Java Basics - Anfänger-Themen 4
F Applet mit KeyListener, "Alt"-Taste und Konflikt mit Browser Java Basics - Anfänger-Themen 2
P KeyListener Java Basics - Anfänger-Themen 2
S KeyListener für einfaches Programm Java Basics - Anfänger-Themen 3
S KeyListener aktiv auch wenn minimiert? Java Basics - Anfänger-Themen 4
Z Globaler Keylistener Java Basics - Anfänger-Themen 2
V KeyListener Beispiel Java Basics - Anfänger-Themen 13
T canvas killt KeyListener Java Basics - Anfänger-Themen 2
Das Brot Nach .add(JRadioButton) funktioniert der KeyListener nicht mehr Java Basics - Anfänger-Themen 2
J Keylistener aber wie jTextField auswahl? Java Basics - Anfänger-Themen 3
D KeyListener, nichts passiert Java Basics - Anfänger-Themen 6
U ActionListener und KeyListener - KeyListener funktioniert nicht Java Basics - Anfänger-Themen 2
D Keylistener zu langsam Java Basics - Anfänger-Themen 7
C Problem mit JPopupMenu, JTextField und Keylistener Java Basics - Anfänger-Themen 2
G Keylistener in einer Schleife Java Basics - Anfänger-Themen 9
M problem mit keylistener Java Basics - Anfänger-Themen 2
M TabbedPane: KeyListener funktioniert nicht mehr Java Basics - Anfänger-Themen 8
N KeyListener ohne GUI? Java Basics - Anfänger-Themen 5
M KeyListener Java Basics - Anfänger-Themen 3
T KeyListener wird nicht ausgelöst Java Basics - Anfänger-Themen 6
O KeyListener Java Basics - Anfänger-Themen 8
Developer_X KeyListener ohne JFrame Java Basics - Anfänger-Themen 13
H KeyListener Java Basics - Anfänger-Themen 4
Developer_X KeyListener Actions (hat mit Java3D zu tun) Java Basics - Anfänger-Themen 20
H KeyListener funktioniert nicht Java Basics - Anfänger-Themen 8
Developer_X JFrame soll KeyListener adden Java Basics - Anfänger-Themen 32
F Keylistener Java Basics - Anfänger-Themen 12
hdi KeyListener : keyTyped() nicht nutzbar? Java Basics - Anfänger-Themen 1
StickToFreak Runnable + KeyListener? Java Basics - Anfänger-Themen 32
dl85hej Keylistener Java Basics - Anfänger-Themen 16
H KeyListener will nicht reagieren Java Basics - Anfänger-Themen 5
R Fehlersuche - KeyListener, KeyAdaper - Nichts Klappt! Java Basics - Anfänger-Themen 2
G Prob. mit KeyListener und Unterklasse Java Basics - Anfänger-Themen 5
G Keylistener nur besimmte Zeichen zulassen Java Basics - Anfänger-Themen 8
hdi keylistener hat keinen fokus oder: listener ohne frame? Java Basics - Anfänger-Themen 10
A KeyListener funktioniert nicht Java Basics - Anfänger-Themen 7
D KeyListener Java Basics - Anfänger-Themen 7
B Keylistener auf JSpinner reagiert nicht? Java Basics - Anfänger-Themen 3
G KeyListener für die Taste "/" Java Basics - Anfänger-Themen 5
E brauche hilfe beim KeyListener Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben