KeyListener

zerix

Hausmeister
Moderator
Hallo!

Ich möchte in meinem Programm einen KeyListener implementieren. Das hab ich vor längerem schon mal gemacht, da musste ich den KeyListener allen Objekten hinzufügen müssen damit er funktioniert. gibt es da noch ne andere Möglichkeit?
 
Moin,
wie "allen"? Füge den KeyListener doch einfach einer übergeordneten Komponenten hinzu, in der sich mehrere/alle Komponenten befinden.
 
Also ich hab eine Klasse geschrieben und der wollte ich den KeyListener hinzufügen. Also habe ich implements KeyListener gemacht und im Konstruktor der Klasse this.addKeyListener(this);
Aber es funktioniert nicht. Die 3 methoden die ich brauche hab ich natürlich auch. Damals hat es halt nur funktioniert wenn ich den KeyListener allen Obejkten in der Klasse hinzugefügt hab. Mache ich irgendwas falsch?
 
hi,
was meinst du denn mit allen Objekten (Buttons, etc.. etwa?). kriegts du eine Fehlermeldung oder werden die events einfach nicht abgefangen?

gruss
sj41
 
wenn du nichts dagegen hast kannst du ja mal den Code-Teil posten, damit wir ihn klau.. äh die Problemstellung lösen können:)
 
Hier hab ich einfach mal ne BeispielKlasse geschrieben, der andere Quelltext wäre ein wenig zu lang :)

Code:
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class KeyLTest extends JFrame implements KeyListener{

	JButton but=new JButton("Keine Funktion");
	JLabel test=new JLabel("TEST");
	KeyLTest()
	{
		super("KeyListenerTest");
		setSize(200,200);
		setLayout(null);
		
		but.setBounds(10,10,100,25);
		add(but);
		
		
		test.setBounds(10,50,100,25);
		add(test);
		
		
		this.addKeyListener(this);
		setVisible(true);
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new KeyLTest();
	}

	public void keyTyped(KeyEvent e) {
		// TODO Auto-generated method stub
		System.out.println("TEST1");
	}

	public void keyPressed(KeyEvent e) {
		// TODO Auto-generated method stub
		System.out.println("TEST2");
	}

	public void keyReleased(KeyEvent e) {
		// TODO Auto-generated method stub
		System.out.println("TEST3");
	}

}

Also so funktioniert es nicht. es funktioniert erst wenn ich den listener dem Button und dem Label auch hinzufüge.
 
Ich muss mich korregieren. Es funktioniert wenn ich es dem Button hinzufüge, aber sonst nirgends. ich wollte es einer JTable hinzufügen die auf einer Scrollpane liegt, aber da reagiert er nicht.
 
Ok, so funktioniert das. Wie es aussieht es das dann von dem Focus abhängig, aber warum funktioniert das denn nicht bei einer JTable, wenn ich in der am arbeiten bin.
 

Neue Beiträge

Zurück