Avatar billede woodbase Nybegynder
02. december 2004 - 22:28 Der er 6 kommentarer og
1 løsning

KeyListener eller KeyBinding af "Enter"

Jeg har et JTextField som jeg gerne vil have til at reagere på tryk på "Enter". Men skal jeg bruge en KeyListener eller en KeyBinding? Og hvordan?
Avatar billede daniboy Nybegynder
02. december 2004 - 23:01 #1
Sådan lige hurtigt rystet ud af ærmet eller google... ;)

class TextFieldListener extends KeyAdapter implements ActionListener {
  public void keyTyped(KeyEvent ke) {
      if(ke.getID() == ke.VK_ENTER) {
        // Do something
      }
  }
}
Avatar billede daniboy Nybegynder
02. december 2004 - 23:07 #2
fjern "implements ActionListener" ;)
Avatar billede woodbase Nybegynder
03. december 2004 - 10:18 #3
Det virker ikke. Den returnere 400 uanset hvilken knap der trykkes på. Og den reagere ikke på enter. Eller rettere den kommer ikke ind i if-sætningen.

KODEN:
fnr.addKeyListener(new KeyListener(){
                public void keyTyped(KeyEvent event){
                    System.out.println(event.getID());
                    if(event.getID()== KeyEvent.VK_ENTER){
                    System.out.println("Knap trykket: "+event.getID());
                        medlemmet.add(new JLabel("HURRA!"), "0 , 7");
                    medlemmet.revalidate();
                    }
                    }
                public void keyPressed(KeyEvent b){}
                public void keyReleased(KeyEvent c){}
               
            });
Avatar billede daniboy Nybegynder
03. december 2004 - 10:51 #4
Dumme mig... ;)

fnr.addKeyListener(new KeyListener(){
                public void keyTyped(KeyEvent event){
                    System.out.println(event.getID());
                    if(event.getKeyCode()== KeyEvent.VK_ENTER){
                    System.out.println("Knap trykket: "+event.getKeyCode());
                        medlemmet.add(new JLabel("HURRA!"), "0 , 7");
                    medlemmet.revalidate();
                    }
                    }
                public void keyPressed(KeyEvent b){}
                public void keyReleased(KeyEvent c){}
             
            });
Avatar billede daniboy Nybegynder
03. december 2004 - 10:54 #5
System.out.println(event.getKeyCode()); sfølig
Avatar billede woodbase Nybegynder
05. december 2004 - 00:03 #6
Oki. Selvom det ikke virkede helt, så fik du mig meget på sporet, så pointene skal du få. Men getKeyCode() og getID() returnere samme værdi for alle taster. Løsningen blev til:

if(event.getKeyChar() == KeyEvent.VK_ENTER){
      //O.S.V.
}
Avatar billede daniboy Nybegynder
05. december 2004 - 00:18 #7
Sådan går det når man gætter ^^
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