Java Tastatureingaben abfangen ohne Focus!

Funresort

Erfahrenes Mitglied
Hi Leute,

würde gerne meine Tastatureingaben abfangen um diese für meine Anwendung zu benutzen, da leider mein Focus immer verloren geht sobald ich wo anderst hinklicke :/ wollte ich fragen ob es da eine andere möglichkeit gibt.

Es ist wichtig:
- Das ich weis ob ein Key gedrückt wird
- Wann er losgelassen wird
- Es muss eine Art Event sein, brauche Dauerabfragen
- Im Prinzip sowas wie der Keylistener


mfg. Chris

Java:
panel.registerKeyboardAction(new ActionListener() {
            public void actionPerformed(ActionEvent event) {
            	
            }
        }, KeyStroke.getKeyStroke('D'), JComponent.WHEN_IN_FOCUSED_WINDOW);

Das hab ich bis jetzt, kann da aber leider nicht abfangen ob ein Key dauergedrückt oder nur kurz gedrückt wurde
 
Ich weiß jetzt nicht ob ich des richtig verstanden habe aber ich hab des mal ganz normal mit dem KeyListener ausprobiert:
Java:
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Date;

import javax.swing.JFrame;
import javax.swing.JTextField;


public class testKey extends JFrame implements KeyListener{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private boolean released;
	private Date start_time;

	public static void main(String []args){
		new testKey();
	}
	public testKey(){
		released = true;
		JTextField jtf = new JTextField();
		
		jtf.addKeyListener(this);

		jtf.setSize(200,20);

		this.add(jtf);
			
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		this.pack();
		this.setVisible(true);
		
		
	}
	@Override
	public void keyPressed(KeyEvent arg0) {
		// TODO Auto-generated method stub
		if(released)
		{
			start_time = new Date();
			released = false;
		}
	}

	@Override
	public void keyReleased(KeyEvent arg0) {
		// TODO Auto-generated method stub
		released = true;
		Date date = new Date();
		System.out.println("Key " + arg0.getKeyChar() + " pressed for "+ (date.getTime()-start_time.getTime()) + " Milliseconds" );
	}

	@Override
	public void keyTyped(KeyEvent arg0) {
		// TODO Auto-generated method stub

	}
	

}


SORRY HAB DES GRAD NOCHMAL DURCHGELESEN ist a schmarrn was ich da geschrieben hab du willst es ja auf nem Panel oder sowas oder ^^
 

Neue Beiträge

Zurück