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?
Annonceindlæg fra Deloitte
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 } } }
02. december 2004 - 23:07
#2
fjern "implements ActionListener" ;)
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){} });
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){} });
03. december 2004 - 10:54
#5
System.out.println(event.getKeyCode()); sfølig
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. }
05. december 2004 - 00:18
#7
Sådan går det når man gætter ^^
Kurser inden for grundlæggende programmering