Fórum fechar tela swing [RESOLVIDO] #569375
04/01/2012
0
Jones Chagas
Curtir tópico
+ 0Posts
04/01/2012
Douglas Eric
jFrame.dispose();
Gostei + 0
04/01/2012
Jones Chagas
jFrame.dispose();
Gostei + 0
04/01/2012
Douglas Eric
Gostei + 0
04/01/2012
World Java
jFrame.dispose();
public class JFrame1 extends JFrame{
//aqui seu construtor etc e tals.
private void btnAbreDialogActionPerformed(ActionEvent e){
new JDialog1(this, true).setVisible(true);
}
}
public class JDialog1 extends JDialog{
private JFrame1 frame1; //aqui vai acontecer o acoplamento
public void setJFrame1(JFrame1 frame){
//aqui define-se o acoplamento
this.frame1 = frame; //agora vc pode usar tudo o que for public de frame 1 em frame 2
}
}
public class JFrame1 extends JFrame implements ConsultaJFrame1Listener{
//aqui seu construtor etc e tals.
private void btnAbreDialogActionPerformed(ActionEvent e){
JDialog1 dialog = new JDialog1(this, true);
dialog.addListener(this); //aqui adiciono a tela como ouvinte
dialog.setVisible(true);
}
//aqui a implementacao q retorna do listener
public void JFrame1Selecionada(ConsultaJFrame1Event e) {
System.out.println(e.getCliente());
}
}
public class JDialog1 extends JDialog{
//construtor etc..
/**
* define listeners para retorno de informacoes desta classe *
*/
//lista de ouvintes
private ArrayList<JFrame1> listeners = new ArrayList<JFrame1>();
//retorna codigo do ouvinte
public interface ConsultaJFrame1Event{
public List<JFrame1> informacoesConsulta();
}
//pega o codigo do q esta no JFrame1
public interface ConsultaJFrame1Listener{
public void jframe1Selecionado(ConsultaJFrame1Event e);
}
//adiciona ouvinte
public void addListener(ConsultaJFrame1Listener listener){
if(!listeners.contains(listener)){
listeners.add(listener);
}
}
//remove ouvinte
public void removeListener(ConsultaJFrame1Listener listener){
listeners.remove(listener);
}
//notifica ouvinte
private void notifyListeners(final List lista){
ConsultaJFrame1Event evt = new ConsultaJFrame1Event() {
@Override
public List informacoesConsulta() {
return lista;
}
};
for(ConsultaJFrame1Listener list : listeners) {
list.JFrame1Selecionada(evt);
}
}
//fecha listener
private void btnSalvarActionPerformed(ActionEvent e){
JFrame1.save(Cliente por exemplo);
notifyListeners(listaDeClientes); //pronto aqui ja faz todo o processo de retorno ou aviso de tela
this.dispose();
}
}