Reconhecer o Enter em um Jbutton

10 respostas
B

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+

10 Respostas

P

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.

P

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

marcos.junqueira

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…

P

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.

ziegfried
jframe.getRootPanel().setDefaultButton(botao)
lina

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.

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
				)
			{
			
			}
		}
	}
);

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:

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

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

P

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…

lina

–******************************************************–
-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…

P

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…

B

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…

Criado 2 de fevereiro de 2007
Ultima resposta 2 de fev. de 2007
Respostas 10
Participantes 5