Colocar teclas de atalho (Swing vs SWT)

Pessoal,

Pq colocar uma simples tecla de atalho na aplicação feita em Swing é muito mais difícil do que no SWT?

é difícil ?
usando o netbeans vc faz isso visualmente…

consulte aki…

http://java.sun.com/docs/books/tutorial/uiswing/events/keylistener.html

[quote=ellison’]é difícil ?
usando o netbeans vc faz isso visualmente…

consulte aki…

http://java.sun.com/docs/books/tutorial/uiswing/events/keylistener.html[/quote]

A tah…mt facil…vai tentar fazer com que o usuário quando apertar a tecla F5 salve o registro, se apertar o F2 cancele. Não venha me dizer que é fácil, pois não é. Não é nada intuitivo. Swing é burocrático até não poder mais.

Já no SWT eu achei a forma um tanto fácil:

	private Listener listener = new Listener(){
		@Override
		public void handleEvent(Event event) {
			switch(event.keyCode) {
			case 13:
				System.out.println("Enter");
				break;
			case 16777230:
				System.out.println("F5");
				break;
			case 16777235:
				System.out.println("F10");
				break;
			case 262144:
				System.out.println("CTRL");
				break;
			case 131072:
				System.out.println("Shift");
				break;
			default:
				System.out.println("default:"+event.keyCode);
			}
		}};

		private Text criarCaixaTexto(Shell shell,int estilo,int esquerda,int topo,int largura,int altura, String titulo){
			Text caixaTexto = new Text(shell, estilo);
			caixaTexto.setBounds(esquerda, topo, largura, altura);
			Label tituloTexto = new Label(shell,SWT.NONE);
			tituloTexto.setText(titulo);
			tituloTexto.setBounds(esquerda, topo-15, largura, 15);
			caixaTexto.addListener(SWT.KeyDown,listener);
			return caixaTexto;
		}

Estou gostando mt do SWT, além de tudo é mais rápido que o Swing.

omg…eu já num disse que o netbeans faz visualmente ??
a classe KeyEvent serve pra pegar o que é inserido pelo teclado…
e ela já possui os valores do teclado em constantes…

VK_N é uma constante que é o mesmo que N…como segue abaixo

e eu tinha dito po que o netbeans faz isso visualmente…
procurar as informações em vez de perder tempo reclamando talvez seja melhor…

nada que uma visita na API não resolva…

por fim…segue um pequeno trecho do código que o netbeans cria pra pegar os eventos do teclado…abaixo o atalho é CTRL + O

abrirMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.CTRL_MASK)); abrirMenuItem.setText("Abrir..."); abrirMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { abrirMenuItemActionPerformed(evt); } });

Oi amigos, estou dando um up nesse assunto pois estou com uma dúvida sobre atalhos.
Estou com a minha aplicação java minimizada, sem o foco. Como faço para, com uma tecla de atalho, ativar o form, colocando o foco em um textbox? Fiz alguns testes, mas todos eles funcionaram somente quando o form já estava ativo.

Obrigado a todos!