preciso fazer algumas combinaçoes de atalhos no meu formulario…por exemplo quando der um crl+N aperta o botao Novo…mas o problema é que só consigo colocar uma tecla de atalho sem a combinaçao…no maximo funciona com o ALT + Tecla
como faço para criar esses atalhos com combinação de teclas??
Se seu evento estiver em um Action ou em um JMenuItem, basta usar o método setAccelerator passando um KeyStroke.getKeyStroke() como argumento.
furacao123
eu estou usando o netbeans e a combinaçao de atalho que eu quero chamar eh um JButton
eu consigo setar pelo netbeans a tecla N no minemonic…mas dae fica por padrao ALT + N
eu queria fazer o atalho igual em menus
M
marcobiscaro2112
OK… essa sequência de atalhos pode ser feita por um Action. Veja um exemplo:
// supondo que neu botão se chame botaoNovobotaoNovo=newJButton();botaoNovo.setText("Novo");botaoNovo.setAction(getNovoAction());// ..... use o método:privateAbstractActiongetNovoAction(){AbstractActionnovoAction=newAbstractAction("Novo",null){privatestaticfinallongserialVersionUID=1L;@OverridepublicvoidactionPerformed(finalActionEventevt){// fazer algo aqui!!!}};novoAction.putValue(Action.ACCELERATOR_KEY,KeyStroke.getKeyStroke(""));// TODO esse é o atalho!!!returnnovoAction;}
furacao123
me explica melhor esse metodo putValue???
estou tendo problema em nao axar o action.ACELERATOR_KEY
meu código ficou assim para a combinação CRTL + N
novoAction.putValue(Action.ACELERATOR_KEY,KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N,java.awt.event.InputEvent.CTRL_MASK));// TODO esse é o atalho!!!
M
marcobiscaro2112
furacao123:
me explica melhor esse metodo putValue???
estou tendo problema em nao axar o action.ACELERATOR_KEY
meu código ficou assim para a combinação CRTL + N
novoAction.putValue(Action.ACELERATOR_KEY, KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.CTRL_MASK)); // TODO esse é o atalho!!!
O putValue insere uma determinada característica a um Action. No caso, a característica é Action.ACELERATOR_KEY (certifique-se de importar a interface javax.swing.Action!!!) e o valor dessa caracterítica é o KeyStroke que nada mais é que um atalho do teclado. Será que deu pra entender?
Lavieri
se vc esta usando Netbeans, é + simples que imagina ^^ …
importe o pacote org.jdesktop
clique com o direito do mouse sobre o JButton que vc ker por o atalho… e selecione Definir Ação…
la vai ter… acelerador… marque os atalhos que deseja (ctrl, alt, shif) e escolha a tecla ^^
algo + ou - assim
furacao123
mas onde eu encontro esse jdesktop??
no meu netbeans nao possui…e quando clico no botao nao tenho a opçao de definir ação
agora sobre o outro exemplo eu intendi o meu problema era o import o netbeans estava importanto um pacote awt e nao swing por isso nao encontrava
agora vou tentar jogar uma combinaçao de atalho no keyStroke, pois dessa maneira q eu tinha colocado nao funcionou