Eventos utilizando objetos instanciados de outras classes

2 respostas
L

Boa noite, estão desenvolvendo um sistema com telas dinâmicas, onde um a é acessada através do objeto da outra:

Tenho três classes: Pessoa, Usuario e TelaCadastrar

import java.awt.*;   
import java.awt.event.*;   
import javax.swing.*;

 public class Pessoa extends JFrame{
 setSize(981, 623);
		 setVisible(true);
		 setLocationRelativeTo(null);
		 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		

Usuario u;
public Pessoa{
//pessoa, um JFrame que tem um TabbedPane e adiciona o conteudo  da instancia  Usuario:

JTabbedPane pessoa = new JTabbedPane();
usuario = new JPanel();
pessoa.addTab("USUÁRIO", null, usuario, null);
usuario.setLayout(new GridLayout(1, 1));      
usuario.add(u.conteudo);
}
}
public Usuario extends JPanel{

JPanel conteudo;
JButton cadastrarUsuario; 
TelaCadastrar tcp;
Pessoa tpe;

public Usuario(){

conteudo = new JPanel();

	cadastrarUsuario = new JButton("CADASTRAR");
		cadastrarUsuario.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				tcp = new TelaCadastrar();
				 tpe = new Pessoa();
				 tpe.tp.conteudoPaciente.removeAll();
				 conteudoPaciente.add(tcp.Cadastro);
				 tcp.Cadastro.setVisible(true);
				 tpe.validate();
					}});
conteudo.add(cadastrarUsuario);

	
}
}
public TelaCadastrar extends JPanel{

TelaCadastrar(){

// código de um formulário cadastrar Usuario.

}
}

Quando o usuario clicar no botão Cadastrar, exibirá o formulario cadastral

Dinâmicamente, o sistema irá trocar a tela Usuario pela TelaCadastrar dentro da classe Pessoa, porem, o código dentro do ActionListener não funciona, seria um caso de tornar minhas classes staticas??

2 Respostas

O

Olá LucasVilarim,
nao sei se é isso, mas no action listener vc está setando o tpe como new Pessoa(), tpe = new Pessoa(); dessa forma vc não se referencia a classe Pessoa que já está aberta. A action deveria, a meu ver, chamar o frame principal que já está instanciado e não uma nova instancia desse frame. Acho que já vi discussoes parecidas aqui no GUJ… mas nao me recordo a chave de busca que usei.
Lembro de ter consultado esse fórum, onde o ViniGodoy postou um exemplo da comunicação entre objetos. Talvez possa te ajudar:
http://www.guj.com.br/java/55710-jdialog-devolvendo-valor-pra-jinternalframe#292687

L

Opa muito obrigado cara, ajudo sim!!!

Criado 5 de outubro de 2012
Ultima resposta 5 de out. de 2012
Respostas 2
Participantes 2