Tab por enter swt

Ola pessoal alguem sabe me dizer como trocar
o TAB pelo ENTER usando o plugin SWT

obrigado!!!

[quote=Picyka]Ola pessoal alguem sabe me dizer como trocar
o TAB pelo ENTER usando o plugin SWT

obrigado!!![/quote]

Bom, a tua pergunta pode ser interpretada de umas três maneiras diferentes pelo menos. Eu vou escolher uma delas (se o usuário pressionar Enter, deveria ser como se tivesse pressionado Tab). Deveria ser fácil adaptar o código para suportar as outras possibilidades.

Pode existir mais de uma maneira de fazer isso, a minha sugestão é uma adaptação de um dos SWT Snippets.

/*******************************************************************************
 * Copyright (c) 2000, 2004 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.swt.snippets;

/*
 * Text example snippet: stop CR from going to the default button
 *
 * For a list of all SWT example snippets see
 * http://www.eclipse.org/swt/snippets/
 */
import org.eclipse.swt.*;
import org.eclipse.swt.events.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;

public class Snippet116  {
public static void main(String[] args) {
	Display display = new Display();
	Shell shell = new Shell(display);
	shell.setLayout(new GridLayout());
	Text text = new Text(shell, SWT.SINGLE | SWT.BORDER);
	text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
	text.setText("Here is some text");
	Text text2 = new Text(shell, SWT.SINGLE | SWT.BORDER);
	text2.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
	text2.setText("Here is some more");
	final TraverseListener traverseListener = new TraverseListener() {
		public void keyTraversed(TraverseEvent e) {
			if (e.detail == SWT.TRAVERSE_RETURN) {
				e.detail = SWT.TRAVERSE_TAB_NEXT;
			}
		}
	};
	// RETURN will mean TAB for text and text2
	text.addTraverseListener(traverseListener);
	text2.addTraverseListener(traverseListener);
	Button button = new Button(shell, SWT.PUSH);
	button.setText("Ok");
	shell.setDefaultButton(button);
	shell.pack();
	shell.open();
	while (!shell.isDisposed()) {
		if (!display.readAndDispatch())
			display.sleep();
	}
	display.dispose();
}
}

É na verdade a pergunta foi mal elaborada mais queria mudar na Shell
seria uma ShellCadastro onde tem varios campo Text, e alem do mais saber algum site que tenha um materia sobre os eventos SWT por que so novo antes programava em delphi ai tenho que fazer um trabalho da facul um sistema de Vendas de Produtos, e a coisa ta Complicada

Valeu…
Obrigado pela Atenção!!!

Até onde eu saiba, não tem como fazer no pai (shell, composite, etc). Tens que explicitamente adicionar o traverse listener para cada um dos controles Text.

Isso é fácil de se colocar em um método em separado:

private void changeReturnToTab(Control root) {
  if (root instanceof Text)
    child.addTraverseListener(RETURN_FOR_TAB_REPLACER);
  else if (child instanceof Composite)  
    for(Control child : ((Composite) root).getChildren())
      changeReturnToTab(child);
}

Onde RETURN_FOR_TAB_REPLACER é:

private final static TraverseListener RETURN_FOR_TAB_REPLACER = new TraverseListener() {
  public void keyTraversed(TraverseEvent e) {
    if (e.detail == SWT.TRAVERSE_RETURN)
      e.detail = SWT.TRAVERSE_TAB_NEXT;
  }
}

Bom, sobre documentação tu tens o próprio javadoc (recomendo que tenhas o fonte de SWT associado ao swt.jar). Para ver todos os tipos de eventos , dá uma olhada nas classes definidas no pacote org.eclipse.swt.events. Por exemplo, abre TraverseEvent (com Ctrl-Shift-T) e se tiveres o package explorer configurado para sincronizar com o editor (‘Link wih Editor’), vais ver no PE todas as classes no mesmo pacote.

Outra documentação legal são os SWT snippets, mandei o link antes. Bom, boa sorte.

Pow valeu pelas dicas amigo
um abração e sucesso!!!

Valeu pelas dicas amigo, estou terminando um curso de java ai precizo fazer um projeto de um sistema de vendas aqueles qe possui os modulos de estoque, venda etc. ai o bixo vai pega pra fazer mas vamo lá nada cai do céu vamo atraz vo usar SWT e banco de dados Mysql 5.0

Abraços

Ola amigo valeu pelas dicas, estou quese concluindo um curso de java e precizo terminar um sistema de vendas, usando SWT + mysql 5.0
a interface ja ta quase tudo pronta so falta o mais dificil, mais vamo la sei bastante coisa ja ehhehehe so que SWT é um poco limitado ainda mais em vista do swing é bem mais rapido
isso ai valeu pela ajuda

abraços
t++