Stránka 1 z 1
Klávesnice a grafický výstup
Napsal: 01 dub 2014 20:35
od Fantomas
Ahoj,
chci se zeptat, kde mám chybu. Část programu má zčásti spočívat v tom, že po stisknutí klávesy ESC má něco udělat (v mém případě vypisuju do konzole "ahoj"). Program dělám v javě AWT.
Kód: Vybrat vše
addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
int stiskKlavesy = e.getKeyChar();
if (stiskKlavesy==KeyEvent.VK_ALT) {
System.out.println("ahoj");
}
}
});
Do konzole mi to nic nevypisuje ani nedělá žádné jiné požadované úkony v grafickém prostředí. Prostě mi to klávesnici úplně ignoruje...
Díky za pomoc!
Re: Klávesnice a grafický výstup
Napsal: 01 dub 2014 22:07
od domitea
Nepoužíváš náhodou Swing?
Možná by pomohl RequestFocus - pohledej Javadoc
Re: Klávesnice a grafický výstup
Napsal: 02 dub 2014 21:21
od Fantomas
ano, používám, ale stále si vůbec nevím rady... ať to zkouším jak to zkouším, stále se nic neděje :(
Re: Klávesnice a grafický výstup
Napsal: 02 dub 2014 21:35
od domitea
A ten requestFocus ?
Re: Klávesnice a grafický výstup
Napsal: 02 dub 2014 21:43
od Fantomas
ne pořád nic... :(
mám tohle:
Kód: Vybrat vše
addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
int stiskKlavesy = e.getKeyCode();
if (stiskKlavesy==KeyEvent.VK_ESCAPE) {
System.out.println("ahoj");
requestFocus();
}
}
});
pak mám ještě otázku, když budu chtít v programu udělat nějakou událost při stisknutí klávesnice a zároveň tlačítka myši, jak to mám implementovat? vždy mám totiž metodu buď pro klávesnici nebo pro myš, ale nevím jak to dát dohromady...
Re: Klávesnice a grafický výstup
Napsal: 02 dub 2014 22:12
od domitea
Ten request focus musí být mimo ten listener...
Re: Klávesnice a grafický výstup
Napsal: 03 dub 2014 14:37
od Fantomas
Tak jsem to dal mimo listener, ale stejně neúspěch. Ať se dívám kam se dívám, tak bych to mám správně, ale nefunguje to.... Nemám použít jinou třidu? Stisk ukládám jako int a pak to to ověřuji s hodnotou ESC v KeyEventu, kde je napsáno toto:
Kód: Vybrat vše
public static final int VK_ESCAPE = 0x1B;
Kód zatím vyprodukovaný:
Kód: Vybrat vše
addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
int stiskKlavesy = e.getKeyCode();
if (stiskKlavesy==KeyEvent.VK_ESCAPE) {
System.out.println("ahoj");
}
}
});
requestFocus();
Re: Klávesnice a grafický výstup
Napsal: 03 dub 2014 15:30
od rhsCZ
javě sice nerozumím ale nechybí ty zde závorka?
Re: Klávesnice a grafický výstup
Napsal: 03 dub 2014 20:44
od Fantomas
nene, neschází. Celé to začíná "(", kde se deklaruje celý kód výše zmíněný a pak si dole všimni toho ");".
Re: Klávesnice a grafický výstup
Napsal: 03 dub 2014 21:22
od domitea
rhs: anonymní vnitřní třída, dělá pěkný guláš

Fatomas: Pošli raději rovnou celý kód, ono se takhle moc radit nedá

Re: Klávesnice a grafický výstup
Napsal: 04 dub 2014 22:35
od Fantomas
tak funkce mi již funguje. Vše to bylo tím, že jsem nezapnul focus (setFocusable(true) ) na začátku konstruktoru. Díky.