Passar um objeto junto com a instância de um JFrame?

4 respostas
fsfnit

Fala galera,
A questão é a seguinte, tenho uma APP em Swing para estudo acadêmico, que basicamente cadastra um Cliente, e um Adminstrador admista os dados dele.
Tenho uma tela que chama outras, porém gostaria que quando chamasse a tela referente a Cliente, fosse passado o objeto.
Vou colocar a classe aqui, pois acho q nao consigo ser mais claro.

package gui;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import src.Cliente;

/**
 *
 * @author  Fernando
 */
public class JanelaCliente extends JFrame implements ActionListener {
    
    /** Creates new form JanelaCliente */
    public JanelaCliente() {
        super("Cliente");
        initComponents();
        //Entrarão os campos e botões ...
    }
    
              
    private void initComponents() {
  //mapeamento e tudo mais... 
}    
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new JanelaCliente().setVisible(true);
            }
        });
    }

    public void actionPerformed(ActionEvent e) {
        //Entrarão as ações de cada botão e campo
    }
    
    // Declaração de variáveis - não modifique                     
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JTextField jTextField1;
    // Fim da declaração de variáveis                   
    
}

Ou seja, essa é a classe chamada, ja tentei mudar a assinatura do construtor mas nao deu certo pq reclama no main dessa classe. Alguem tem alguma ideia ?
Obrigado desde já.

4 Respostas

ViniGodoy

Crie um segundo construtor para a sua classe, que receba o objeto como parâmetro.

fsfnit

Bom, resolvi criando um ArrayList estatico, que guarda o objeto e eu o pego na outra classe.
Foi jeito que arrumei.
Obrigado pela ajuda de qq forma.

T

Cuidado com variáveis estáticas, tal como você fez - elas são o equivalente a “gotos” no Java, ou seja, começam a deixar seu código um verdadeiro macarrão - (espaguete, ou miojo, ou o seu sabor preferido).

É que a sua classe acaba ficando muito dependente da outra classe; e você fica com problemas de saber por que é que seu programa começou bem, e depois ficou bagunçado.

ViniGodoy

fsfnit:
Bom, resolvi criando um ArrayList estatico, que guarda o objeto e eu o pego na outra classe.
Foi jeito que arrumei.
Obrigado pela ajuda de qq forma.

Esse é um péssimo jeito de resolver o problema, diga-se de passagem.

Evite variáveis estáticas o máximo que puder. O melhor mesmo é fazer a passagem desse valor de maneira direta (através de um segundo construtor ou mesmo de um método publico na outra classe). A maneira que você resolveu não só é pouco encapsulada, nada orientada a objetos, como também muito insegura.

Criado 21 de novembro de 2007
Ultima resposta 21 de nov. de 2007
Respostas 4
Participantes 3