to com o seguinte problema: Tenho um tela e quando eu clicar sobre um botão abre outra tela.
fiz assim e não da certo.
ap01.addListener(SWT.Selection,newListener(){publicvoidhandleEvent(Eventevent){//tentando instanciar outra classe no evento do botãofrmCad_Apartcad=newfrmCad_Apart();}});}
Em Swing isso da certo se instaciar a classe desta forma. Como se faz isso em SWT?
a Stack é essa:
Exception in thread "main" org.eclipse.swt.SWTException: Invalid thread access
o mais fácil seria sua tela implementar “ActionListener”…
com isso vc obrigatoriamente vc vai ter um método "actionPerformed"
pegue o seu botão e jogue um nome nele botão.setName(nome) // nome do seu botão, botão.addActionListener(this) // está falando que as ações desse botão vão ser controladas por essa tela.
No método “actionPerformed” pega o seu componente…
Component component = (Component) e.getSource()
faz uma validação se o nome “component” for igual ao nome do botão chame a tela que vc quer.
Se não conseguir, vai no Google :lol:
R
raphaelFree
Em SWT não consegui implementar ActionListener. O que você me descreveu é exatamente o que teria que fazer em Swing. Tentei fazer desta forma, e não deu certo.
To pesquisando, e pelo que eu achei, dentro desta minha tela terei que chamar um “Dialog” e não outra tela igual a ela.
R
raphaelFree
Após pesquisar bastante desenvolvi uma solução. Abaixo segue o codigo de uma classe [b]pai/b que chama a classe [b]filho/b em SWT. Espero que esse codigo possa ajudar alguem.