mboost-dp1
JAVA - Keylistener
- Forside
- ⟨
- Forum
- ⟨
- Programmering
Hej derude..
Vi sidder med et program som skal logge af når jeg ikke har brugt det i 5 min..
Vi har en mouseListener på vores frame.. den virker fint..
Derudover har vi en keylistener på samtlige tekstfelter i programmet.. Det løber hurtigt op.. og det er ikke køn kode imo..
Det er ikke muligt at få det til at virke ved at tilføje keylisteneren til framen..
Men er der en smart måde at finde ud af om der bliver tastet et sted i programmet?
Med Venlig Hislen
Kenn Stadager.
Vi sidder med et program som skal logge af når jeg ikke har brugt det i 5 min..
Vi har en mouseListener på vores frame.. den virker fint..
Derudover har vi en keylistener på samtlige tekstfelter i programmet.. Det løber hurtigt op.. og det er ikke køn kode imo..
Det er ikke muligt at få det til at virke ved at tilføje keylisteneren til framen..
Men er der en smart måde at finde ud af om der bliver tastet et sted i programmet?
Med Venlig Hislen
Kenn Stadager.
Problemet med en alm. keylistener er at den kræver din component har focus.
Så løsningen er at implementere et KeyMap
Som så attaches din JFrame (dvs. din Window Container)
Så løsningen er at implementere et KeyMap
public class MyInputMap extends InputMap
{
@Override
public Object get(KeyStroke s)
{
if(s.getKeyEventType() == KeyEvent.KEY_PRESSED)
{
try
{
switch(s.getKeyCode())
{
case KeyEvent.VK_RIGHT:
System.out.println("Du trykkede på højre piletast.")
break;
}
}
catch(IOException ex)
{
ex.printStackTrace();
}
}
return super.get(s);
}
}
Som så attaches din JFrame (dvs. din Window Container)
public class MyForm extends JFrame
{
public MyForm()
{
MyInputMap inputMap = new MyInputMap();
inputMap.setParent(getRootPane().getInputMap(
JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
));
this.getRootPane().setInputMap(
JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT,
inputMap
);
}
}
Kun fordi at han ellers regner med at du har kopieret koden fra et internet forum, og ikke forstår hvad den gør ;-)tazimn (4) skrev:Dog ligger det en del uden for pensum, så skal lige tages op med underviseren inden vi bruger det..
Du skal selvfølgelig læse op på det i Java docs, og forstå koden 110%, samt dokumentere den i dit projekt.
Hvis du gør det, så tror jeg ikke du behøver snakke med din lære omkring det.
Gå til top
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.