Clicar em um botão e o sistema executar o comando de Ctrl+W

Galera, eu precisava q q quando o usuário clicar em um botão o sistema executar o comando de Ctrl+W. ou Alt+I.
Tem alguma classe q implementa isso ?
Não sei nem por qual nome pesquiso !!
Se alguém ai souber, ficarei grato !!!

Olá Cristiano,
Não sei se entendi direito o que você quer, mas entendi da seguinte forma:

  1. você tem uma classe java onde existe um método que é executado quando o usuário pressiona + ou + ;
  2. você quer que a mesma tarefa que é executada ao pressionar essa teclas seja executada em um clique de botão.

Se o que eu entendi está correto, você pode fazer o seguinte: chame o método que é executado ao pressionar o conjunto de teclas no evento ActionPerformed do seu botão.

Agora, se eu não é esse quadro que você tem… ai é outra história.

e ai brother !!!
é isso mesmo q eu quero fazer !!
vc entendeu certim !!!

agora deixa eu te perguntar. eu usei no NetBeans uma propriedade do MenuItem (acelerator) para criar as teclas de atalho na Classe FrmPrincipal

vi no código gerado q o método é esse:
jMIcliente.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_A, java.awt.event.InputEvent.CTRL_MASK));

minha dúvida agora é, como eu vou chamar de outra classe, esse método
q o netBens criou ???

consegui, é q o MenuItem tava como privado. pus ele como público. ele reconheceu o método.

muito obrigado pela ajuda ai man
vlw !!!

Olá Cristiano,
Você poderia ter feito de outra forma, que é mais eficiente por permitir que outras partes do teu programa executem a mesma tarefa. Vou dar um exemplo do que falo:

Digamos que vc quer que o seu menu mostre a palavra “Teste” na saída padrão. Então, em vez de colocar a linha System.out.pritln(“Teste”) no evento que o NetBeans cria para o menuItem, você primeiro cria um método com essa linha:

private void metodoBesta() { System.out.println("Teste"); }

Dai, no evento que o NetBeans criou para o menu você chama esse método:

private void mitAbrirActionPerformed(java.awt.event.ActionEvent evt) { metodoBesta(); }

e chame esse mesmo método no evento para o clique de botão:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { metodoBesta(); }

ou em qualquer outra parte do seu código.

OBS.: estranhamente, nos meus testes as combinações de + ‘alguma tecla’ não funcionaram, somente as combinações com ou .

brother, continuo com o problema

o jMenuItem Cliente foi criado como público no FrmPrincipal onde através da propriedade acelerator criei a tecla de atalho. blz !!

mas quando eu vou usar no método do botão ele não funciona e nem dá nenhum erro.

//código q tá dentro do evento do botão

private FrmPrincipal frmprinc; // é um frame
try {
frmprinc = new FrmPrincipal();
frmprinc.jMIclientes.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
java.awt.event.KeyEvent.VK_C, java.awt.SHIFT.MASK));
}
catch (SQLException) {
ex.printStackTrace();
}

Cristiano, seria bom se vc anexasse o arquivo do seu código para eu baixar pois acho que não estou entendendo direito.

Mas, ao que parece, vc colocou esse código diretamente no evento do botão, certo? Se é isso, seria melhor você colocar esse código em um método externo e depois, dentro do evento do botão, chamar esse método externo, mas um método que apenas chane o frmprinc.

Quanto ao accelerator, você pode seta-lo logo após a criação do MenuItem, no próprio FrmPrinc. Setar essa propriedade em um outro frame pode ser um tanto estranho.

E outra coisa, que acho que deve ser o cerne do seu problema. Para chamar o FrmPrincipal, vc tem de instancia-lo e depois setar a propriedade de visibilidade. Particularmente, prefiro fazer essas duas etapas em momentos diferentes. Se vc quiser seguir a minha forma, coloque, antes da última chave (}) da sua classe a linha pra instanciar o FrmPrincipal:
FrmPrincipal frmPrinc = new FrmPrinc();
e no método que será chamado dentro do botão a mudança de visibilidade da janela:
frmPrinc.setVisible(true);
é esta última linha que realmente faz a janela aparecer para o usuário.

Espero ter ajudado.

vlw brother !!!
vc me ajudou e muito com suas explicações !!!

Disponha sempre, Cristiano.