Avatar billede ostehamster Nybegynder
23. maj 2005 - 14:22 Der er 8 kommentarer og
1 løsning

KeyListener går ned, når musen bruges

Hejsa

Jeg har en KeyListener i et program, som virker ganske fint, så længe man ikke bruger musen. Så snart jeg bruger musen i programmet, f.eks. hvis jeg bare trykker på en knap, så holder KeyListeneren op med at virker.

Nogle der har oplevet noget lignende?

mvh
Christoffer
Avatar billede mikkelbm Nybegynder
23. maj 2005 - 14:30 #1
Har du noget kode vi må se? Ellers er det svært at finde problemet.
Avatar billede ostehamster Nybegynder
23. maj 2005 - 14:41 #2
Jeg implementere KeyListener

Og har denne metode:
public void keyPressed(KeyEvent e) {
    if (e.getKeyCode() == KeyEvent.VK_UP) {
        speed.setValue(sidstsendtSpeed++);
        guiSend(robot.lavHast(speed.getValue()));

    } else if (e.getKeyCode() == KeyEvent.VK_DOWN) {
        speed.setValue(sidstsendtSpeed--);
        guiSend(robot.lavHast(speed.getValue()));

    } else if (e.getKeyCode() == KeyEvent.VK_LEFT) {
        retning.setValue(sidstsendtRetning--);
        guiSend(robot.lavBias(retning.getValue() + 40));

    } else if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
        retning.setValue(sidstsendtRetning++);
        guiSend(robot.lavBias(retning.getValue() + 40));

    } else if (e.getKeyCode() == KeyEvent.VK_S) {
        buttonStop.doClick();

    } else if (e.getKeyCode() == KeyEvent.VK_R) {
        buttonRetop.doClick();

    } else if (e.getKeyCode() == KeyEvent.VK_P) {
        buttonPing.doClick();

    } else if (e.getKeyCode() == KeyEvent.VK_A) {
        buttonAuto.doClick();

    } else if (e.getKeyCode() == KeyEvent.VK_O) {
        buttonOpdater.doClick();

    } else if (e.getKeyCode() == KeyEvent.VK_L) {
        buttonLoeb.doClick();
    }
}

Listeneren bliver tilføjet sådan:
frame = new JFrame("Titel");
frame.addKeyListener(this);

Alt er i samme klasse
Avatar billede mikkelbm Nybegynder
23. maj 2005 - 15:13 #3
Det er højst sandsynlig fordi din frame mister fokus til en knap. Når den ikke længere har fokus, dur din listener ikke mere.
Avatar billede ostehamster Nybegynder
23. maj 2005 - 15:16 #4
Ahh, kan man så ikke tilføje listeneren til hele klassen/vinduet eller noget i den stil? Så den altid er der?
Avatar billede mikkelbm Nybegynder
23. maj 2005 - 15:18 #5
Jeg har endnu ikke fundet en smart metode til det. Men du kan jo tilføje den keylistener til alle dine komponenter (selvom det måske ikke er den pæneste løsning).
Avatar billede mikkelbm Nybegynder
23. maj 2005 - 15:21 #6
Der er måske noget interessant her:

http://java.sun.com/products/jfc/tsc/special_report/kestrel/keybindings.html

Jeg har dog ikke selv læst det igennem.
Avatar billede ostehamster Nybegynder
23. maj 2005 - 15:34 #7
Hmm, det var da godt nok en kedelig ting. Tror lige jeg vil overveje om der overhovedet skal være nogle tasterturgenveje så :)
Avatar billede mikkelbm Nybegynder
24. juli 2005 - 01:40 #8
Lukketid?
Avatar billede ostehamster Nybegynder
07. august 2005 - 14:33 #9
Det må man nok sige.... :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester