Boa tarde galera.
To com uma dúvida, para instanciar um formulário no SWT
devo declarar dois Obejtos um Display e um Shell, passando o Objeto display no constructor do shell,
se eu não quiser passar o display no constructor qual método set eu posso indicar o display depois,
e para fazer o formulário aparecer é preciso fazer um
laço while
shell.open();
while (!shell.isDisposed()){
if (!display.readAndDispatch()){
display.sleep();
}
}
tem como não usar esse while, já procurei na net e todo exemplo que eu vejo usa isso.
Sei lá algo do tipo que na hora que eu instancio o form já apareça.
estou estudando (sem compromisso o swt) e verifiquei como a instancia do form funciona.
quando você coloca as seguintes linhas
Display display = new Display();
Shell shell = new Shell(display);
shell.open();
já é o suficiente para você ter a janela, mas assin que ela abre, já fecha automaticamente.
Assim é preciso que você insira um loop que primeiro verifica se o usuário não fechou a janela. A outra verificação indica que ele deve verificar a fila de eventos para qualquer mensagem que o sistema de janelas ou outras partes de sua aplicação tenha sido gerado para você.
Dai o loop que você citou. Este loop é necessário. Uma alternativa é utilizar a biblioteca JFace.
Em JFace o código fica muito menor
import org.eclipse.jface.window.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.*;
public class JanelaSWTeJFace extends ApplicationWindow{
public JanelaSWTeJFace(){
super(null);
}
protected Control createContents(Composite parent){
parent.pack();
return parent;
}
public static void main(String[] args){
JanelaSWTeJFace janela = new JanelaSWTeJFace();
//agora sem o loop do swt
janela.setBlockOnOpen(true); //se verdadeiro chama o proximo metodo open()
janela.open();
Display.getCurrent().dispose();
}
}
Tem um livro nacional que trata do básico(básico mesmo do uso do SWT e JFace). Segundo li as duas bilbiotecas devem ser utilizada em conjunto principalmente em aplicações java para desktops. O livro é “Dominando eclipse - Tudo que o Desenvolvedor java precisa para criar aplicativos para desktops” de Edson Gonçalves - editora moderna.
Eu achei no emule
Uma dica: use as tags code para incluir código no post blz
Espero que ajude
valeu pela dica vou ter que estudar JFace
esse livro é muito grande será que consegue me passar por e-mail
se puder manda ai
erick.p.rocha@gmail.com
Obrigado.