Diskuze: Reakce na klávesy
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 31 zpráv z 31.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Na okno přidáš KeyListener a překryješ naimplementované metody. Informace o stisknuté klávese získáš přes instanci třídy KeyEvent. Kód by mohl vypadat takhle:
@Override
public void keyPressed(KeyEvent e)
{
int key = e.getKeyCode();
switch(key)
{
case KeyEvent.VK_RIGHT:
System.out.println("Vpravo"); break;
case KeyEvent.VK_LEFT:
System.out.println("Vlevo"); break;
default:
System.out.println("Neplatná volba");
}
}
jinak jak koukám, tak na to je metoda a co mám dopsat do toho parametru e? znám akorát scanner na čtení znaků a souborů a ten se na to nepoužívá ne? myslím tim, že když ji vyvolám, jakože "keyPressed(e)" tak co bude místo toho e
Vůbec ti nerozumím
KeyListener je rozhraní, nutí tě naimplementovat 3 abstraktní metody, které
musíš překrýt:
Parametr v závorce je instance třídy KeyEvent. Díky ní můžeš zjišťovat inforamce o stisknuté klávese. Např:
e.getKeyChar() // vrátí znak klávesy
já jsem chtěl lidsky jednoduchou věc. prostě jsem si to představoval tak, že jednoduše vyvolám metodu (třeba jako v C# Console.ReadKey()), kdy prostě počítač čeká na stisknutí určité klávesy a podle toho pak reaguje, ale bohužel ani nerozumím frázi "překrýt 3 abstraktní metody" abstraktní metody znám, ale vůbec nechápu co mám udělat. Můžeš mi prosím na příkladu ukázat, kdy se vyvoláním metody docílí naslouchání počítače, který čeká na stisknutí klávesy a následné podmínky, která se splní podle stiknutých kláves? Jako třeba scanner taky čeká, když zachytí metodu nextLine() a to je příkaz na jeden řádek
Zdejší zdrojové kódy by ti také mohly pomoci: http://www.itnetwork.cz/…had-snake-2d
no... já to chtěl zatim spíš narychlo pro přítelkyni, protože jsem čekal, že to bude jednodušší, ale když vidim ty mazce jak instance volá instanci zabalenou z instance a bla bla bla, tak se na to asi vykašlu, než k tomu v budoucnu dojdu sám. Zlatý scanner, kde stačí vytvořit instanci a pak jen volat metody, kde už počítač naslouchá
Ach jo, přečíst zdrojový kód a překopírovat ho a pochopit je (alespoň pro mě) otázka 10ti minut...
to budeš mít těžkej život programátora pokud ti přijde těžké přepsat 3 metody
pokud vím Scanner mu problém nedělá dělá mu problém tohle :
neco.addKeyListener(new KeyListener(){
@Override
public void keyPressed(KeyEvent e){}
@Override
public void keyReleased(KeyEvent e){}
@Override
public void keyTyped(KeyEvent e){}
}
Posluchače zaznamenávající změny na klávesnici se umísťují na komponenty, např JPanel, JTextArea...
panel.addKeyListener(new java.awt.event.KeyAdapter() {
@Override
public void keyPressed(java.awt.event.KeyEvent evt) {
switch (evt.getKeyCode()) {
case KeyEvent.VK_UP:
break;
case KeyEvent.VK_DOWN:
break;
}
}
});
Spíš kvůli nějakému prográmku, který má umět keyListener
jj právě no. Oni ve škole makaj v JavaFX a já s tím nemám zkušenosti, tak mi jednou řekla "ty furt něco programuješ, ale když po tobě jednou něco chci, tak mi nepomůžeš", takže mě to docela i rozhodilo, protože mě programování baví a rád bych jí pomohl, ale nejde to.. zatím :/ Jinak má za úkol udělat jednoduchou obrázkovou textovku, takže se má spustit program, objeví se úvodní obrazovka s obrázkem, kde je třeba "1)Start, 2)Konec" a hra zobrazuje další obrázky a zase se na ně reaguje podle číslic, prostě jako jednoduchá textovka pro konzoli, akorát místo konzole okno. Jako napadlo mě to udělat pomocí GUI, ale ona to musí mít v tom FXku. A to jí furt říkám ať mi splaší materiály, že pracovní listy ze školy jsou doslova požehnání, když je tam teorie a zároveň logický úlohy, ale stydí se no :/ jednou si tam zajdu asi sám
Jde o to, že jsi zvyklý zadat čtení ze vstupu a čekat. KeyListener tohle dělá za tebe. Objektu přidáš metodou addKeyListener objekt tvé třídy, která implementuje rozhraní KeyListener. Parametr "e" (osobně ho pojmenovávám "event", protože "e" si rezervuji pro exception) si událost (instanci třídy KeyEvent) dosadí už sama při volání některé z implementovaných metod.
Jak přítelkyni máš asi pomoct když to sám neumíš? Radši jí řekni ať dává ve škole pozor.
já vím, ale jí nebaví procvičovat a nezvládá logické úlohy. Zároveň zastává názor, že programování je pro nejhloupější lidi, protože ti lidé co to programují, musí být na stejné úrovni jako počítač, který taky potřebuje na každou maličkost vysvětlení teď se snaží jen dodělat prvák tím, že udělá tuhle jednu pololetní práci (tu textovku) a pak přestoupí na jinou školu. Legrace je, že jsem přes tu JavuFX zvládnul daný obrázek vykreslit podle podmínky, jenže ono to vykreslení probíhá v několika krocích, kde si instance přihraje instanci a to hned několikrát, takže sice jdou obrázky vyvolávat v podmínce poměrně dobře, ale jakmile jsem to zkusil kutilsky přes scanner, kdy měl počítač hned po vykreslení obrázku čekat na zadání čísla, tak po spuštění programu se sice okno objevilo, bílé, jenže pak už nic, furt se mi tu točilo kolečko, že to maká, jenže ono to ve skutečnosti jen čekalo na stisknutí klávesy, což byla vyvolaná metoda potom -.- fakt škoda že se nedá kreslit do konzole, pak bych to FX někam zahodil
Když je podle ní programování pro nejhloupější lidi, tak proč neprogramuje? Asi by z ní byla skvělá programátorka.
Na druhou stranu mu řekla, že není až takový blbec, aby jí pomohl.
ještě že nás hlupáku/imbecilů je stále málo a chytří lidé co jezdí s popelářem je až až tak aspoň my jakožto idioti tak moc nevyčníváme
Když někomu lidi nerozumí a jejich práce se jim zdá nesmyslná nebo neužitečná, tak pak to jsou hlupáci, kreténi, a divný nebo zbytečný lidi, to se stává
No to musí být pro ni docela ponižující, když nezvládne to, co
nejhloupější
lidi bez problémů dovedou.
Asi bych ji v tom pěkně vymáchal. Nechal bych
ji snažit se samu a sem tam bych trefně okomentoval, co všechno má na
tom
blbě. Při velkém úspěchu bych ji pochválil, že už se těm
nejhloupějším
po malých krocích přibližuje.
To je asi jako kdybys měl holku na technické škole a tvrdila, že třeba manuální práce je pro nejhloupější, řek jí ať složí skříňku, a poté, co by si vrtačkou provrtala nohu jí řek, že už se přibližuje těm nejhloupějším lidem Asi bys dostal po držce a byl svobodnej
Prozradím ti tajemství..
Jsem dlouho a spokojeně ženatý.
Zobrazeno 31 zpráv z 31.