Como passar objeto da propria classe por parametro?

3 respostas
M

Gente, como eu faço pra declarar um objeto da propria classe, preciso passá-lo por parametro para outra classe qualquer...

O código abaixo vai ajuda-los a entender.

package View;
import Control.Controle;
import Model.Modelo;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JOptionPane;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;



public class InterCadPrincipal extends JFrame {
    
    
	Modelo Omodelo = new Modelo();
    Controle Ocontrole = new Controle();
	
	FlowLayout Flayout;
	public JTextField jtfnome, jtfid, jtfend, jtfpreco, jtfproduto,
	jtfdata, jtfcpf, jtfemail, jtfcidade;
	
	public JLabel jlnome, jlproduto, jlpreco, jlid, jlend, jldata, 
	jltipocliente, jlcpf, jlemail, jlcidade;
	
	public JButton jbcadastrar, jbfechar, jbcomprar, jbconsulta;
	public JRadioButton rbCliente,rbFornec;
	public ButtonGroup exclusivo;//mutuamente exclusivo, serve pra marcar uma só das opções.
	public boolean tipocliente; //Atributo que distingue fornecedor de cliente.
	
	
	public void settipocliente(boolean tipocliente) {
		this.tipocliente = tipocliente;
	}

	public InterCadPrincipal() {
		
        setTitle("                              Cadastro Principal");
		
		Container gerenciador = getContentPane();
		gerenciador.setLayout(null);
		
        /*Instanciando botões*/		
		jbconsulta = new JButton("Consulta");
		jbcadastrar = new JButton("Cadastrar");
		jbcomprar = new JButton("Comprar");
		jbfechar = new JButton("Fechar");
		
		/*Instanciando caixas de texto*/ 
		jtfnome = new JTextField();
		jtfend = new JTextField();
		jtfdata = new JTextField();
		jtfcpf = new JTextField();
		jtfemail = new JTextField();
		jtfcidade = new JTextField();
		jtfid = new JTextField();
		jtfproduto = new JTextField();
		jtfpreco = new JTextField();
		
		/*Instanciando labels*/
		jlnome = new JLabel("Nome ");
		jlend = new JLabel("Endereço ");
		jldata = new JLabel("Data Nascimento ");
		jltipocliente = new JLabel("tipo");
		jlcpf = new JLabel("CPF / CNPJ");
		jlemail = new JLabel("Email");
		jlcidade = new JLabel("Cidade");
		jlid = new JLabel("ID");
		jlpreco = new JLabel("Preço");
		jlproduto = new JLabel("Produto");
		
		/*Instanciando radiobuttons*/
	    rbCliente =new JRadioButton("Cliente");
	    rbFornec =new JRadioButton("Fornecedor");
	    exclusivo = new ButtonGroup();
	    
	    jlnome.setBounds(10, 10, 300, 23);
	    jlend.setBounds(10, 40, 300, 23);
	    jldata.setBounds(10, 70, 300, 23);
	    jltipocliente.setBounds(10, 100, 300, 23);
	    jlcidade.setBounds(10, 130, 300, 23);
	    jlcpf.setBounds(10, 160, 300, 23);
	    jlemail.setBounds(10, 190, 300, 23);
	    jlid.setBounds(350, 70, 50, 23);
	    jlproduto.setBounds(10, 220, 350, 23);
	    jlpreco.setBounds(10, 250, 300, 23);
	    
        /*Aqui os labels 
         * e as caixas de texto são colocados em modo invisivel*/	    
	    jlpreco.setVisible(false);
	    jlproduto.setVisible(false);
	    jtfpreco.setVisible(false);
	    jtfproduto.setVisible(false);
	    
	    jtfpreco.setBounds(150, 250, 150, 23);
	    jtfproduto.setBounds(150, 220, 300, 23);
	    jtfnome.setBounds(150, 10, 300,23);
	    jtfend.setBounds(150, 40, 300, 23);
	    jtfdata.setBounds(150, 70, 90,23);
	    jtfcidade.setBounds(150, 130, 300, 23);
	    jtfcpf.setBounds(150, 160, 300, 23);
	    jtfemail.setBounds(150, 190, 300, 23);
	    jtfid.setBounds(380, 70, 70, 23);
	    
	    rbCliente.setBounds(140, 100, 70, 23);
	    rbFornec.setBounds(240, 100, 90, 23);
	    
	    jbcadastrar.setBounds(10, 420, 100, 30);
	    jbcomprar.setBounds(120, 420, 100, 30);
	    jbconsulta.setBounds(230, 420, 100, 30);
	    jbfechar.setBounds(340, 420, 100, 30);
	    
	    gerenciador.add(jbcomprar);
	    gerenciador.add(jbconsulta);
	    gerenciador.add(jbcadastrar);
	    gerenciador.add(jbfechar);
	    
	    gerenciador.add(jlid);
	    gerenciador.add(jlnome);
	    gerenciador.add(jlend);
	    gerenciador.add(jldata);
	    gerenciador.add(jltipocliente);
	    gerenciador.add(jlcidade);
	    gerenciador.add(jlcpf);
	    gerenciador.add(jtfcpf);
	    gerenciador.add(jlemail);
	    gerenciador.add(jlpreco);
	 	gerenciador.add(jlproduto); 
	 	
	    gerenciador.add(jtfproduto);
        gerenciador.add(jtfpreco);	    
	    gerenciador.add(jtfid);
	    gerenciador.add(jtfnome);
	    gerenciador.add(jtfend);
	    gerenciador.add(jtfdata);
	    gerenciador.add(jtfcidade);
	    gerenciador.add(jtfemail);
	   
	    gerenciador.add(rbCliente);
	    gerenciador.add(rbFornec);
	    
//	    final InterCadPrincipal cad = this;
	    
	    rbFornec.addActionListener(new ActionListener()
	    {
	    	public void actionPerformed(ActionEvent e)
	    	{
	    		if(rbFornec.isSelected() == true){
	   	    	   jlpreco.setVisible(true);
	   	    	   jlproduto.setVisible(true);
	   	    	   jtfproduto.setVisible(true);
	   	    	   jtfpreco.setVisible(true);
	   	    }
	   	    
	    	}
	    });
	    
	    rbCliente.addActionListener(new ActionListener()
	    {
	    	public void actionPerformed(ActionEvent e)
	    	{
	    		if(rbCliente.isSelected() == true){
	   	    	   jlpreco.setVisible(false);
	   	    	   jlproduto.setVisible(false);
	   	    	   jtfproduto.setVisible(false);
	   	    	   jtfpreco.setVisible(false);
	   	    }
	   	    
	    	}
	    });
	    exclusivo.add(rbCliente);
	    exclusivo.add(rbFornec);
	    
	    setSize(500,500);
	    setVisible(true);		
		
		jbcadastrar.addActionListener(new ActionListener()  //método pra sair.
		{
		  public void actionPerformed(ActionEvent e)
		  {
			 /*Quero fazer um procedimento aqui, e preciso passar como parametro
			  * um objeto dessa classe, como eu faço isso????*/  
		  }

		
		}//fim do metodo		
	    
		);
		
		
		jbfechar.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				System.exit(0);
			}
		});
		
		jbcomprar.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
		        new InterContas(); //método que chama outro frame, nesse caso o de compras.
		       
			}
		}
		);
		
		jbconsulta.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				new InterConsulta();
			}
		}
		);
		}//fim do construtor.
	

	public static void main(String[] args)
	{
		new InterCadPrincipal();
		
	}


/*//Abaixo estão os métodos modificadores e acesso.
	public JTextField getJtfcidade() {
		return jtfcidade;
	}
	public void setJtfcidade(JTextField jtfcidade) {
		this.jtfcidade = jtfcidade;
	}
	public JTextField getJtfcpf() {
		return jtfcpf;
	}
	public void setJtfcpf(JTextField jtfcpf) {
		this.jtfcpf = jtfcpf;
	}
	public JTextField getJtfdata() {
		return jtfdata;
	}
	public void setJtfdata(JTextField jtfdata) {
		this.jtfdata = jtfdata;
	}
	public JTextField getJtfemail() {
		return jtfemail;
	}
	public void setJtfemail(JTextField jtfemail) {
		this.jtfemail = jtfemail;
	}
	public JTextField getJtfend() {
		return jtfend;
	}
	public void setJtfend(JTextField jtfend) {
		this.jtfend = jtfend;
	}
	public JTextField getJtfnome() {
		return jtfnome;
	}
	public void setJtfnome(JTextField jtfnome) {
		this.jtfnome = jtfnome;
	}
	public JLabel getJlid() {
		return jlid;
	}
	public void setJlid(JLabel jlid) {
		this.jlid = jlid;
	}
	public boolean istipocliente(boolean a) {
		if(rbCliente.isSelected() == true)
	    	 istipocliente(true);  
		else istipocliente(false);
		// TODO Auto-generated method stub
		return false;
	}*/
}//fim.

3 Respostas

P

Olá senhor,olha não entendi o que você quer fazer nessa classe mais para passar o objeto da própria classe como parâmetro para um método é só utilizar o palavra chave this.

Exemplo

public class minhaClasse {
        String nomeQualquer = "JAVA";
       
        public MInhaClasse() {
             imprimirNomeQualquer(this);//passa o próprio objeto para o parâmetro.
        }
  
        public void imprimirNomeQualquer(MinhaClasse pelom) {
              System.out.println(pelom.getNomeQualquer());
        }

        public String getNomeQualquer() {
             return nomeQualquer;
        }
   }

Vê se tú consegue entender.
Ass: Pelom Cabelom;

M
Amigo, lá onde falei que precisava instanciar um objeto e manda-lo por paramentro, é porque preciso dele nessa classe :
package Control;
import java.awt.event.ActionListener;

import Model.*;
import View.InterCadPrincipal;

import javax.swing.JOptionPane;

public class Controle {
	
	
    //InterCadPrincipal Ocadastro = new InterCadPrincipal();
	Modelo Omodelo = new Modelo();
	
  public void manda_dados(ActionListener listener){
	 Omodelo.cadastro(listener);
	 
	 
	  
  }
    
   public Controle() {
		// TODO Auto-generated constructor stub	
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new Controle();	
	}

}
J

public class Controle {

//InterCadPrincipal Ocadastro = new InterCadPrincipal();

Modelo Omodelo = new Modelo();

E porque você não está fazendo exatamente como está comentado aí?

Criado 9 de novembro de 2006
Ultima resposta 9 de nov. de 2006
Respostas 3
Participantes 3