Problema ao utilizar teclas de atalho

3 respostas
A

Bom dia a todos,
estou com um problema com um atalho.
Estou utilizando o actionMap() e inputMap() para atribuir atalhos do teclado aos meus botões, todos funcionam perfeitamente, porem quando eu presiono ctrl + a ( ação de abrir um arquivo) ele seleciona todo o texto do meu textArea.
Todos os botões são implementados da mesma forma, porém esse é o unico que esta dando problema.
Vou enviar me codigo parra que vocês possam analisa-lo.
Desde já grato,
Allan.

btAbrir.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)
				.put(	KeyStroke.getKeyStroke(KeyEvent.VK_A,	InputEvent.CTRL_DOWN_MASK), "btAbrir");

		btAbrir.getActionMap().put("btAbrir", new AbstractAction() {

			@Override
			public void actionPerformed(ActionEvent evento) {
				acaoAbrir(evento);
			}

		});

3 Respostas

E

Em particular, eu desaconselharia o uso de Ctrl+A para atalhos, já que ele tradicionalmente é usado para selecionar todo o texto de um JTextComponent em vários sistemas operacionais (no MacOSX o atalho correspondente é Command+A, mas isso não vem ao caso).

Será que você não poderia usar um atalho diferente?

É que os atalhos Ctrl+C, Ctrl+X, Ctrl+V e Ctrl+A são tradicionalmente usados para edição de texto, e um usuário medianamente acostumado com os atalhos tradicionais esperaria que eles funcionassem como Copy, Cut, Paste e Select All. Talvez fosse o caso de usar Alt+A, por exemplo.

De qualquer maneira, você percebeu que o Ctrl+A do textbox está prevalecendo sobre a programação que você fez para o resto do seu JFrame/JDialog. Talvez você tenha de mexer no input map do textbox também.

A

Muito obrigado pela ajuda, mas o atalho teria que ser esse mesmo pois se trata de um trabalho acadêmico.
Eu tinha pensado em retirar o foco do TextArea antes de chamar a ação do atalho mas não sabia como, vou testar a sua solução.
Att,
Allan.

A

Não deu certo, mas vou continuar tentando.
ATT,
Allan.

Criado 21 de março de 2012
Ultima resposta 21 de mar. de 2012
Respostas 3
Participantes 2