| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/08/2006 17:24:04
|
petter
Virtual Machine Man
Membro desde: 28/04/2006 17:11:34
Mensagens: 662
Offline
|
Pessoal quando estou no jTextField eu capturo se o usuário digitou determinada tecla da seguinte maneira:
Minha dúvida é como fazer quando o cara digitar o F9 o botão x ser pressionada e logicamente todo o código dentro dele ser executado?
|
-----------------------------------------
Java is the future
----------------------------------------- |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/08/2006 17:37:06
|
emmanuel.silva
JavaTeenager
![[Avatar]](/images/avatar/ea50fb37fdda7dd9b3b42c6f4a8b3d3f.png)
Membro desde: 26/05/2006 10:46:57
Mensagens: 169
Localização: Curitiba
Offline
|
Para exeuctar um evento de um botão sem precisar que o usuario clique pode utilizar o metodo doClick() no JButton:
MyButton.doClick();
Valeu.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/08/2006 08:25:08
|
petter
Virtual Machine Man
Membro desde: 28/04/2006 17:11:34
Mensagens: 662
Offline
|
Valeu cara, tá funcionando beleza.
Só um detalhe, para um F9 eu faço como no exemplo que postei e para simular um CTRL + Q. Como seria?
|
-----------------------------------------
Java is the future
----------------------------------------- |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/08/2006 09:31:22
|
emmanuel.silva
JavaTeenager
![[Avatar]](/images/avatar/ea50fb37fdda7dd9b3b42c6f4a8b3d3f.png)
Membro desde: 26/05/2006 10:46:57
Mensagens: 169
Localização: Curitiba
Offline
|
Vc verifica o modificar do evento, assim vc pode verificar se o usuario pressionou o ALT + alguma tecla ou CTRL + alguma tecla , etc....
tenta assim:
if(KeyEvent.getKeyText(evt.getKeyCode()) == "F9" && evt.getKeyModifiersText() == KeyEvent.SHIFT_MASK ){
}
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/08/2006 10:36:46
|
petter
Virtual Machine Man
Membro desde: 28/04/2006 17:11:34
Mensagens: 662
Offline
|
Cara tá dando um erro:
Travei...
|
-----------------------------------------
Java is the future
----------------------------------------- |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/08/2006 11:46:08
|
emmanuel.silva
JavaTeenager
![[Avatar]](/images/avatar/ea50fb37fdda7dd9b3b42c6f4a8b3d3f.png)
Membro desde: 26/05/2006 10:46:57
Mensagens: 169
Localização: Curitiba
Offline
|
Post o codigo ai para eu ver o que esta acontecendo
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/08/2006 11:56:08
|
emmanuel.silva
JavaTeenager
![[Avatar]](/images/avatar/ea50fb37fdda7dd9b3b42c6f4a8b3d3f.png)
Membro desde: 26/05/2006 10:46:57
Mensagens: 169
Localização: Curitiba
Offline
|
Vc pode fazer o seguinte
vc pode mapear essa tecla de atalho no seu frame, fazendo com que em qualquer lugar do frame quando o usuario por exemplo clicar CTRL + Q :
KeyStroke ksSalvar = KeyStroke.getKeyStroke(KeyEvent.VK_Q, KeyEvent.SHIFT_MASK, true);
getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(ksSalvar, "SalvarAction");
getRootPane().getActionMap().put("SalvarAction", new AbstractAction() {
private static final long serialVersionUID = -4928658259483500995L;
public void actionPerformed(ActionEvent ae) {
//codifique aqui
}
});
Se vc não quiser nemhum modificar por exemplo só a tecla q, vc cria o KeyStroke e no lugar do KeyEvent.SHIFT_MASK vc coloca 0
então quando vc iniciar o frame e todos os objetos na tela chame esse trecho de código blz...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/08/2006 14:18:10
|
petter
Virtual Machine Man
Membro desde: 28/04/2006 17:11:34
Mensagens: 662
Offline
|
Cara fiz o exemplo que vc falou e ele só funciona na combinação SHIFT + Q, quando eu teclo CRTL + Q não acionada nada.
Tentei no código mudar para CTRL mas tem consegui. Tem como isso ser feito?
|
-----------------------------------------
Java is the future
----------------------------------------- |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/08/2006 15:14:54
|
emmanuel.silva
JavaTeenager
![[Avatar]](/images/avatar/ea50fb37fdda7dd9b3b42c6f4a8b3d3f.png)
Membro desde: 26/05/2006 10:46:57
Mensagens: 169
Localização: Curitiba
Offline
|
Cara, tenta assim troquei a linha JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
para JComponent.WHEN_IN_FOCUSED_WINDOW
ou seja quando a janela estiver em focus vai funcionar, agora acho que vai, testei
aqui tanto com o SHIFT quanto o CTRL.
agora eu acho que vai
KeyStroke ksSalvar = KeyStroke.getKeyStroke(KeyEvent.VK_Q, KeyEvent.CTRL_MASK, true);
getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(ksSalvar, "SalvarAction");
getRootPane().getActionMap().put("SalvarAction", new AbstractAction() {
private static final long serialVersionUID = -4928658259483500995L;
public void actionPerformed(ActionEvent ae) {
JOptionPane.showMessageDialog(null, "Teste");
}
});
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/08/2006 16:27:15
|
petter
Virtual Machine Man
Membro desde: 28/04/2006 17:11:34
Mensagens: 662
Offline
|
Valeu cara. Agora funcionou legal.
|
-----------------------------------------
Java is the future
----------------------------------------- |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/08/2006 16:40:25
|
petter
Virtual Machine Man
Membro desde: 28/04/2006 17:11:34
Mensagens: 662
Offline
|
Tinha pintado outra duvida aqui mas já resolvi.
Valeu.
|
-----------------------------------------
Java is the future
----------------------------------------- |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/08/2006 17:39:42
|
emmanuel.silva
JavaTeenager
![[Avatar]](/images/avatar/ea50fb37fdda7dd9b3b42c6f4a8b3d3f.png)
Membro desde: 26/05/2006 10:46:57
Mensagens: 169
Localização: Curitiba
Offline
|
blz cara, qualquer duvida é só postar
|
|
|
 |
|
|