# Mit Enter einen Button aktivieren



## java777 (20. Mai 2010)

Hallo Leute,

ich habe einen keylistener erstellt mit einer keypressed-methode folgendermaßen:



```
public void keyPressed(KeyEvent e) {                
	  if(e.getKeyCode() == KeyEvent.VK_ENTER){
		System.out.println("enter pressed");
		
	    }
    }
```

sobald ich nun die enter-teste betätige, wir "enter pressed" ausgegeben aber wie kann ich nun
hier einen button implementieren? sobald nun die enter-taste gedrückt wird soll ein button auf 
der swing-oberfläche aktiviert werden.
freue mich auf tipps
mfg


----------



## darkmagic2002 (20. Mai 2010)

Hallo java777,
du beschreibst dein Problem sehr ungenau. Was meinst du mit "aktiviert werden". Etwa, dass der Button angeklickt werden kann oder dass er den Fokus bekommt?
Um irgendeinen Button zu aktivieren, musst du erst mal eine Oberfläche geschrieben haben. Kannst du evtl. deinen bereits vorhandenen Code mal posten?
Allerdings müsstest du bei einer Oberfläche statt einen _KeyListener_ folgenden Code benützen, um Events von der ganzen Oberfläche abzufangen:

```
public class MySurface extends JFrame
{
	public MySurface()
	{
		JButton button = new JButton("button");
		button.setEnabled(false); //falls button am Anfang deaktiviert sein sollte
		//anderer Code (button zur GUI hinzufügen u.A.)
	
		//Code, um mit Enter-Taste Button "zu aktivieren":
		KeyStroke keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, false);
				getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(keyStroke, "Enter");
				getRootPane().getActionMap().put("Enter", new AbstractAction()
					{
								private static final long serialVersionUID = 1L;
		
						@Override
						public void actionPerformed(ActionEvent e)
						{
							//Button aktivieren:
							//button.setEnabled(true);
		
							//oder
		
							//Button fokusieren:
							//button.requestFocusInWindow();
						}
					});
	}
}
```

grüße,
kevin


----------

