KeyListener für JDialog

LatinFavourite

Bekanntes Mitglied
Hallo, warum kann man einer Instanz eines JDialogs keinen KeyListener hinzufügen. Im Konstruktor funktioniert es problemlos. Wie unten funktioniert es kurioserweise nicht. Oder mache ich gerade einen Denkfehler. Danke.

Java:
gameview = new GameView(view, game); 
gameview.addKeyListener(new KeyAdapter(){
			
			public void keyPressed(KeyEvent e){
				System.out.println(e.getKeyCode());
			}
			
		});
 

javampir

Bekanntes Mitglied
hi,
was heißt "funktioniert nicht"
ich arbeite zwar nie mit key adapter sondern immer mit KeyListener, aber die syntax stimmt.
javampir
 

LatinFavourite

Bekanntes Mitglied
Ja, genau, das wundert mich ja. Im Konstruktor funktioniert es ja, aber ich wollte es über den Controller und der view Instanz hinzufügen. So wie oben, eigentlich sollte es doch funktionieren.
 

Harry Kane

Top Contributor
Mal ganz ehrlich: glaubst du ernsthaft, jemand kann dir anhand deines Codeschnipsels erklären, warum es "nicht funktioniert", ohne den weiteren Kontext des Codes und deine funktionierende Lösung "im Konstruktor" zu kennen? Im Konstruktor wovon? JDialog hat keinen Konstrukor, an den KeyListener übergeben werden können. Sprichst du vom Konstruktor deiner GameView-Klasse? Wenn ja, wie sieht der denn bitteschön aus?
 

LatinFavourite

Bekanntes Mitglied
Ich meine natürlich die gameview Klasse. Ich wollte es aber über den Controller hinzufügen, der eine Instanz der gamview hat. Und nicht direkt im Konstruktor der gameview.

Java:
public GameView(View view, Game game){
		super(view,"Current Map");
		this.view = view;
		this.game = game;
		setSize(500, 500);
		setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
		
		
		
		addKeyListener(new KeyAdapter(){
			
			public void keyPressed(KeyEvent e){
				checkKey(e);
			}
			
			public void keyReleased(KeyEvent e){
				releaseKey(e);
			}
			
		});
 

Foxei

Bekanntes Mitglied
Hallo LatinFavourite,
das Problem ist recht Simple wenn du einen JDialog erzeugst ist die ContentPane der letzte Componenet der erzeugt wird und somit der Default-Besitzer des Focus. Wenn du nun andere Componenten Hinzufügt oder mit der Maus anklicktst wechselt der Focus auf die anderen Componenten.

KeyListener ist meine Dialog-Klasse
Sollange der User keinen anderen Component im Dialog in klickt Funktioniert dieser Code:
Java:
public KeyListener(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
        
        getContentPane().addKeyListener(new KeyAdapter() {

            @Override
            public void keyReleased(KeyEvent e) {
                System.out.println(e.getKeyCode());
            }
        
        });
        
        getContentPane().requestFocusInWindow();
    }

Falls der User die Möglichkeit hat zu Klicken muss der Code erweitert werden:
Java:
    public KeyListener(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
        
        getContentPane().addKeyListener(new KeyAdapter() {

            @Override
            public void keyReleased(KeyEvent e) {
                System.out.println(e.getKeyCode());
            }
        
        });
        getContentPane().addFocusListener(new FocusAdapter() {

            @Override
            public void focusLost(FocusEvent e) {
                getContentPane().requestFocusInWindow();
            }
        
        });
        
        getContentPane().requestFocusInWindow();
    }

Gruß Foxei
 

LatinFavourite

Bekanntes Mitglied
Hi, danke euch beiden. Einen Compilerfehler gibt es nicht, es erfolgt einfach keine Reaktion auf die Tasten.

@Foxei: Vielen Dank für deine ausführliche Antwort und eine entsprechende Erklärung, das werde ich dann umgehend probieren. Danke.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
V Tastatur KeyListener für mehrere Buttons AWT, Swing, JavaFX & SWT 1
B SWT Problem: Wie kann man für jede TableColumn einen eigenen KeyListener registrieren. AWT, Swing, JavaFX & SWT 1
C Swing KeyListener für JPanel funktioniert nicht AWT, Swing, JavaFX & SWT 8
M Fokus für KeyListener AWT, Swing, JavaFX & SWT 9
L Focus für KeyListener auf verschiedene Panels AWT, Swing, JavaFX & SWT 2
K JComboBox und KeyListener für OK-Button AWT, Swing, JavaFX & SWT 6
C KeyListener für JPanel AWT, Swing, JavaFX & SWT 3
R KeyListener-Algorithmus für JTextArea AWT, Swing, JavaFX & SWT 3
P JTextfield Text durch Keylistener verändern AWT, Swing, JavaFX & SWT 4
N Keylistener & JComboBox AWT, Swing, JavaFX & SWT 5
B Swing JButton mit KeyListener AWT, Swing, JavaFX & SWT 3
H KeyListener funktioniert nicht AWT, Swing, JavaFX & SWT 1
Fridolin111 Der KeyListener Löst kein event aus AWT, Swing, JavaFX & SWT 6
B KeyListener auf JFrame reagiert nicht AWT, Swing, JavaFX & SWT 8
N Mit KeyListener ein rechteck zeichnen AWT, Swing, JavaFX & SWT 9
S Swing JPanel nimmt keinen KeyListener an AWT, Swing, JavaFX & SWT 7
P JPanel KeyListener hinzufügen AWT, Swing, JavaFX & SWT 8
B Swing KeyListener auf Container? AWT, Swing, JavaFX & SWT 1
T Event Handling KeyListener reagiert nicht AWT, Swing, JavaFX & SWT 10
K KeyListener ohne JFrame AWT, Swing, JavaFX & SWT 9
C Keylistener funktioniert nicht AWT, Swing, JavaFX & SWT 1
T KeyListener funktioniert nicht wenn ich ein JButton hinzufüge AWT, Swing, JavaFX & SWT 1
A Event Handling Muss ich 'KeyListener' tasuend mal zufügen? AWT, Swing, JavaFX & SWT 7
S mit keylistener frame schliessen AWT, Swing, JavaFX & SWT 8
S Keylistener reagiert bei Buttons nicht. AWT, Swing, JavaFX & SWT 8
S KeyListener funktioniert nicht AWT, Swing, JavaFX & SWT 2
R KeyListener in mehreren Panels AWT, Swing, JavaFX & SWT 5
J JLabel Visible setzen in KeyListener AWT, Swing, JavaFX & SWT 13
X KeyListener AWT, Swing, JavaFX & SWT 0
N KeyListener funktioniert nicht richitg AWT, Swing, JavaFX & SWT 4
Z SnakeGame Schlange per KeyListener bewegen! AWT, Swing, JavaFX & SWT 10
T KeyListener AWT, Swing, JavaFX & SWT 2
GianaSisters JFrame mit JInternalFrames, Keylistener-Problem AWT, Swing, JavaFX & SWT 9
7 KeyListener tastatur temporär blockieren AWT, Swing, JavaFX & SWT 7
7 AWT problem: KeyListener/ test im Label umändern AWT, Swing, JavaFX & SWT 4
U Mouse + Keylistener AWT, Swing, JavaFX & SWT 12
K ActionListener mit KeyListener AWT, Swing, JavaFX & SWT 7
J JWindow und keylistener AWT, Swing, JavaFX & SWT 1
F JavaFX KeyListener zum Fenster öffnen/schließen AWT, Swing, JavaFX & SWT 9
A Swing KeyEvent mit KeyListener und KeyAdapter kürzer schreiben AWT, Swing, JavaFX & SWT 7
D JTextArea auf KeyListener Command AWT, Swing, JavaFX & SWT 6
C KeyListener AWT, Swing, JavaFX & SWT 5
Doopy Event Handling KeyListener funktioniert nach Restart nicht mehr AWT, Swing, JavaFX & SWT 7
S KeyListener geht nicht AWT, Swing, JavaFX & SWT 12
C Swing KeyListener in JPanel AWT, Swing, JavaFX & SWT 2
A KeyListener Button wechseln & Programm beenden AWT, Swing, JavaFX & SWT 4
M Frage zu KeyListener bzgl. JApplet AWT, Swing, JavaFX & SWT 3
H Bild mit KeyListener verschieben AWT, Swing, JavaFX & SWT 2
C JTextField KeyListener AWT, Swing, JavaFX & SWT 6
Y KeyListener, GUI Thread, repaint AWT, Swing, JavaFX & SWT 7
bluerob Fehler bei Wertübermittlung über KeyListener AWT, Swing, JavaFX & SWT 3
E Swing KeyListener implementieren AWT, Swing, JavaFX & SWT 12
P KeyListener reagiert nicht AWT, Swing, JavaFX & SWT 11
M KeyListener richtig implementieren AWT, Swing, JavaFX & SWT 3
T KeyListener AWT, Swing, JavaFX & SWT 4
R KeyListener in JWindow AWT, Swing, JavaFX & SWT 7
T BlueJ KeyListener AWT, Swing, JavaFX & SWT 7
Z KeyListener AWT, Swing, JavaFX & SWT 2
M Swing KeyListener in JTextfield AWT, Swing, JavaFX & SWT 4
VfL_Freak Swing KeyListener, um einen Dialog per ESC zu schließen AWT, Swing, JavaFX & SWT 6
A Keylistener reagiert nicht AWT, Swing, JavaFX & SWT 10
D Problem mit KeyListener AWT, Swing, JavaFX & SWT 2
J KeyListener um auf CTRL-Enter zu reagieren AWT, Swing, JavaFX & SWT 2
L Snake in Java KeyListener Problem AWT, Swing, JavaFX & SWT 30
B "globaler" KeyListener? AWT, Swing, JavaFX & SWT 3
B JTable TableHeader KeyListener AWT, Swing, JavaFX & SWT 4
S Swing KeyListener und JList AWT, Swing, JavaFX & SWT 2
R KeyListener funzt nicht AWT, Swing, JavaFX & SWT 2
X KeyListener AWT, Swing, JavaFX & SWT 4
P KeyListener + Animation AWT, Swing, JavaFX & SWT 2
V Problem mit KeyListener im Fullscreen-Modus AWT, Swing, JavaFX & SWT 2
M AWT KeyListener reagiert nicht AWT, Swing, JavaFX & SWT 10
C Swing KeyListener reagiert nicht AWT, Swing, JavaFX & SWT 7
K JFrame + KeyListener + Runnable = Fehler AWT, Swing, JavaFX & SWT 3
F Tastenabfrage (KeyListener) AWT, Swing, JavaFX & SWT 2
D KeyListener Problem bei JPanel wechsel AWT, Swing, JavaFX & SWT 2
S Swing JTree mit KeyListener AWT, Swing, JavaFX & SWT 2
L AWT KeyListener, requestFocus und KeyBindings AWT, Swing, JavaFX & SWT 8
E JFrame akzeptiert den KeyListener nicht AWT, Swing, JavaFX & SWT 3
F Swing Problem mit KeyListener||paintComponent() in JFrame AWT, Swing, JavaFX & SWT 12
P Swing KeyListener hört nur manchmal zu AWT, Swing, JavaFX & SWT 2
Screen Focus Problem , KeyListener, TextField , Key AWT, Swing, JavaFX & SWT 4
earlgrey_tea AWT KeyListener bekommt keine Signale AWT, Swing, JavaFX & SWT 3
L Problem mit KeyListener AWT, Swing, JavaFX & SWT 3
A KeyListener funktioniert nicht AWT, Swing, JavaFX & SWT 4
D KeyListener-Problem nach dem "Gedrückthalten" einer Taste AWT, Swing, JavaFX & SWT 10
B Swing Keylistener fuer Dialog-Buttons AWT, Swing, JavaFX & SWT 2
B KeyListener Strg+s AWT, Swing, JavaFX & SWT 5
D Globaler Keylistener AWT, Swing, JavaFX & SWT 4
M problem mit keylistener/textarea AWT, Swing, JavaFX & SWT 6
M KeyListener Problem unter Firefox AWT, Swing, JavaFX & SWT 2
L AWT KeyListener, Taste gedrückt halten AWT, Swing, JavaFX & SWT 12
M Komisches Verhalten: JCombobox mit KeyListener AWT, Swing, JavaFX & SWT 13
capgeti SWT KeyListener 2 Tasten Problem AWT, Swing, JavaFX & SWT 3
R KeyListener - welcher Komponente hinzufügen AWT, Swing, JavaFX & SWT 5
Developer_X AWT KeyListener wird nicht ausgeführt! AWT, Swing, JavaFX & SWT 3
N JFrame und KeyListener AWT, Swing, JavaFX & SWT 6
M KeyListener reagiert nach Buttondruck nicht mehr AWT, Swing, JavaFX & SWT 4
A AWT Button verhindert ausführung vom Keylistener AWT, Swing, JavaFX & SWT 4
R KeyListener hinzufügen AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen

Neue Themen


Oben