Problem mit Keylistener wenn Button eingefügt



  • ich hab meinen Code in 3 Files angelegt wobei wohl nur die 3. von bedeutung ist:

    import java.awt.*;
    
    public class OOrg{
    
    	OOrg(){
    		borderFrame frm = new borderFrame(new Dimension(640,480));
    	}
    
    	public static void main(String[] args) {
    		new OOrg();
    	}
    }
    
    import java.awt.event.KeyEvent;
    import java.awt.event.KeyListener;
    
    public class Keyboard implements KeyListener {
    
    	public Keyboard() {
    		//super();
    	}
    
    	public void keyTyped(KeyEvent arg0) {
    		System.exit(0);
    	}
    
    	public void keyPressed(KeyEvent arg0) {
    
    	}
    
    	public void keyReleased(KeyEvent arg0) {
    		// TODO Auto-generated method stub
    	}
    }
    
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    public class borderFrame extends Frame implements ActionListener{
    
    	Panel ControlBar = new Panel();
    	Button bContacts = new Button("Kontakte");
    
    	borderFrame(Dimension dim){
    		this.setSize(dim.width,dim.height);
    		this.addKeyListener(new Keyboard());
    		bContacts.addActionListener(this);
    		bContacts.setActionCommand("bContacts");
    		bContacts.setSize(500,100);
    		ControlBar.add(bContacts);
    
    		this.add(ControlBar);
    
    		this.setVisible(true);
    	}
    
    	public void actionPerformed(ActionEvent evt) {
    		if (evt.getActionCommand().equals("bContacts")){
    			System.out.println("geht");
    		}
    	}
    }
    

    wenn ich die Zeilen für den Button auskommentier reagiert mein Fenster auf einen tastendruck. Wenn ich den Button drin lass nicht.
    Hat jemand eine Ahnung woran das liegen könnt?

    P.S. das ich das in 3 Dateien aufgeteilt hab hat atm keinen sinn sondern war eher ne laune.



  • Ich denke mal, dass der Button den Fokus erhält und da dem kein KeyListener hinzugefügt wurd, passiert nichts.
    Eine Komponente reagiert nur auf KeyEvents, wenn sie auch den Fokus inne hat.


Anmelden zum Antworten