Reconhecer o Enter em um Jbutton

Boa tarde a todos…
Alguém pode me ajudar no seguinte tópico.

-Tenho um Jbutton do swing: Como faço pra que ele reconheça o enter qdo estou com o foco nele ?

  • Como posso colocar uma tecla de atalho por exemplo F11 e qdo o usuario pressionar F11 ele execute a ação do botão ?

Desde já agredeço a atenção de todos

Ate+

Para reconhecer quando uma tecla é apertada quando vc tem um botão selecionado vc tem que adicionar um KeyListener no botão e tratar o q vai acontecer se a tecla apertada for a q vc quiser.

Acho que como atalho vc pode usar o seuBotao.setMnemonic(…);

você também pode fazer isso utilizando o método actionPerformed, que por default detecta o clique do mouse no botão e o enter quando ele está com foco…

a tecla de atalho vc usa o keylistner, então vc tbm pode combinar teclas como alt, ctrl, shift, meta…

Bem lembrado pelo marcos.junqueira

seuBotao.addActionPerformed(this);

Assim, vc trata o evento clique sobre seu botão, e por default, se vc apertar enter estando com o foco no botão, ele interpreta como um clique.

jframe.getRootPanel().setDefaultButton(botao)

Oi,
acho que você deve estar começando ou então
esta meiu confuso né?!
para entender melhor o que o pessoal falou olhe o código abaixo:
ele esta mostrando a função de capturar teclas de teclado.

[code]botao.addKeyListener
(
new KeyAdapter()
{
public
void keyPressed(KeyEvent evt)
{
//
// Cria um int com o codigo do botao
//
int ln_ke_pressionado = evt.getKeyCode();

		//
		// Se for apertado o botao ENTER
		//
		if	(							
				ln_ke_pressionado	==	KeyEvent.VK_ENTER
			)
		{
			//
			// Acão do ao clicar.
			//
		}
		else if	(
				ln_ke_pressionado	==	KeyEvent.VK_F11
			)
		{
		
		}
	}
}

);[/code]

Bom, como falado também… o botão por sua vez, possui como argumento o seu default Action.
sendo assim você já pode definir uma ação para ele utilizando o ActionPerformed.

Primeiro você deve ao criar o botão, passar como argumento sua ação, assim:

io_bt_teste		=	new JButton(ACAO);

Em seguida, fora do scopo onde criou o botão, faça a sua ação, assim:

[code]/**

  • Ação quando clicado em novo.
    */
    Action
    ACAO = new AbstractAction()
    {
    public void actionPerformed(ActionEvent e)
    {
    //
    // Construa sua ação.
    //
    }
    };[/code]

Espero que eu tenha ajudado a esclarecer suas duvidas…
Tchauzin!

Lina, desculpa a ignorância… posso estar falando besteira… se estiver pode me falar…

Mas no código que você postou, o F11 só ativará o botão se for apertado quando o foco estiver no botão né?

Pelo que eu entendi ele queria q o ENTER com o botao no foco disparasse a ação, e o F11 quando o foco estivesse em qualquer componente. Se for isso mesmo, acho que seu código pode não fazer o que ele quer.

Se eu estiver errado me avisa…

–******************************************************–
-Tenho um Jbutton do swing: Como faço pra que ele reconheça o enter qdo estou com o foco nele ?

  • Como posso colocar uma tecla de atalho por exemplo F11 e qdo o usuario pressionar F11 ele execute a ação do botão ?
    –******************************************************–

Olha não sei, eu entendi da forma que postei,
tipo… quando o fóco está no botão ao apertar o enter fazer alguma coisa…

se não for isso me desculpe…
pelo menos pra quem não sabe sobre eventos e permormed minha resposta serve…

=/

desculpas minha tosckisse…

Relaxa Lina

Não é tosckisse sua (que palavrinha hein…), acho que nós só entendemos de um jeito diferente… Vamos esperar que ele responda o que ele realmente queria com a pergunta dele…

Ola Lina…

Realmente sou novato na área de java. To usando eclipse.
E estou me descobrindo rsrsrs.

Vamos ao assunto:

O que eu quero é o o foco esteja em qualquer componente e qdo pressiono F11 por ex, ele execute a ação do botao.

Desde já agradeço a atenção de todos vcs.

Valew…