Como enviar dados de uma pesquisa para outra JInternalFrame? Socorro

Olá… :shock:
Socorro, ja tentei de tudo que sei mas não acontece… o caso é o seguinte…

Criei uma janela onde aparece em JList todos os nomes dos clientes cadastrados no banco de dados MySql, o usario seleciona o nome na lista e clica no botão ver onde mostra todos os dados do cadastro do cliente selecionado na janela anterior… mas quando chega na nova janela que tambem é um JInternalFrame não aparece nada…

//janela pesquisa evento do botão visualizar
private JButton getVisualizar() {
		if (visualizar == null) {
			visualizar = new JButton();
			visualizar.setBounds(new Rectangle(467, 162, 97, 48));
			visualizar.setText("Visualizar");
			visualizar.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					String sel = (String) pesqList.getSelectedValue();
					System.out.println("nome selecionado"+sel);
					MySql banco = new MySql();
					banco.connect();
					ArrayList<Cliente> cliente = banco.getCliente();
					for(Cliente cli : cliente){
						String id = cli.getId();
						String nome = cli.getNome();
						String end = cli.getEndereco();
						String cpf = cli.getCpf();
						String cnpj = cli.getCnpj();
						String cont = cli.getContato();
						String num = cli.getNumero();
						String comp = cli.getComplemento();
						String cidade = cli.getCidade();
						String bairro = cli.getBairro();
						String cep = cli.getCep();
						String fixo = cli.getFoneFixo();
						String cel = cli.getFoneCel();
						String pessoa = cli.getPessoa();
					banco.disconnect();	
				
					if(sel.equals(nome)){
						System.out.println(sel+" - "+id);
						if(pessoa.equals("F")){
							System.out.println("Pessoa "+pessoa);
							
							Cliente fisico = new Cliente();
							fisico.setId(id);
							
							JInternalFrame chama = new JInternalFrame();
							chama = new VisualCad();
							chama.setVisible(true);
							dispose();
							TelaInicial tela = TelaInicial.retornaTelaInicial();
							JDesktopPane desktop = tela.getDesktop();
							desktop.add(chama);
							
							VisualCad passa = new VisualCad();
							passa.getDado(fisico); 
							
							System.out.println("fisico "+fisico);
							
						}
						
					}
					
				}
			}
			});
		}
		return visualizar;
	}
 
//janela onde deveria aparecer os dados... existe um botão ver q criei para ver se conseguia mostrar os dados mas não funcionou

@SuppressWarnings("serial")
public class VisualCad extends JInternalFrame {

	private JPanel jContentPane = null;
	private JLabel nomeLabel = null;
	private JLabel cpfLabel = null;
	private JLabel cpfCliLabel = null;
	private JLabel nomeCliLabel = null;
	private Cliente cliente;
	private JButton fechar = null;
	private JButton novaPesq = null;
	private JButton ver = null;
	private String id = null;  //  @jve:decl-index=0:
	/**
	 * This is the xxx default constructor
	 */
	public VisualCad() {
		super();
		initialize();
	}

	private void initialize() {
		this.setSize(655, 332);
		this.setTitle("Visualização do Cadastro Completo");
		this.setContentPane(getJContentPane());
	}


	private JPanel getJContentPane() {
		if (jContentPane == null) {						
			nomeCliLabel = new JLabel();
			nomeCliLabel.setBounds(new Rectangle(72, 35, 286, 16));
			nomeCliLabel.setText("");
			System.out.println("vazio "+nomeCliLabel.getText());
			cpfCliLabel = new JLabel();
			cpfCliLabel.setBounds(new Rectangle(72, 63, 130, 15));
			cpfCliLabel.setText("");
			cpfLabel = new JLabel();
			cpfLabel.setBounds(new Rectangle(29, 62, 36, 16));
			cpfLabel.setText("CPF:");			
			nomeLabel = new JLabel();
			nomeLabel.setBounds(new Rectangle(30, 35, 38, 16));
			nomeLabel.setText("Nome:");
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(nomeLabel, null);		
			jContentPane.add(cpfLabel, null);
			jContentPane.add(cpfCliLabel, null);
			jContentPane.add(nomeCliLabel, null);
			jContentPane.add(getFechar(), null);
			jContentPane.add(getNovaPesq(), null);
			jContentPane.add(getVer(), null);
			System.out.println("jCont "+nomeCliLabel.getText());
		}
		return jContentPane;
	}

private JButton getFechar() {
	if (fechar == null) {
		fechar = new JButton();
		fechar.setBounds(new Rectangle(510, 226, 122, 49));
		fechar.setText("Fechar");
		fechar.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent e) {
				dispose();
			}
		});
	}
	return fechar;
}

private JButton getNovaPesq() {
	if (novaPesq == null) {
		novaPesq = new JButton();
		novaPesq.setBounds(new Rectangle(507, 159, 123, 47));
		novaPesq.setText("Nova Pesquisa");
		novaPesq.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent e) {
				JInternalFrame chama = new JInternalFrame();
				chama = new PesquisaClient();
				chama.setVisible(true);
				dispose();
				TelaInicial tela = TelaInicial.retornaTelaInicial();
				JDesktopPane desktop = tela.getDesktop();
				desktop.add(chama);
			}
		});
	}
	return novaPesq;
}


public void getDado(Cliente cliente){
	
}
private JButton getVer() {
	if (ver == null) {
		ver = new JButton();
		ver.setBounds(new Rectangle(214, 10, 48, 19));
		ver.setText("Ver");
		ver.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent e){
				
				getDado(cliente);
				System.out.println("cliente "+cliente.getId());
				id = cliente.getId();
				MySql banco = new MySql();
				banco.connect();
				System.out.println("id "+id);
				ArrayList<Cliente> pesq = banco.getClientePesq(id);
				 
				for(Cliente cli : pesq){
					
					String id = cli.getId();
					String nome = cli.getNome();
					String end = cli.getEndereco();
					String cpf = cli.getCpf();
					String cnpj = cli.getCnpj();
					String cont = cli.getContato();
					String num = cli.getNumero();
					String comp = cli.getComplemento();
					String cidade = cli.getCidade();
					String bairro = cli.getBairro();
					String cep = cli.getCep();
					String fixo = cli.getFoneFixo();
					String cel = cli.getFoneCel();
					String pessoa = cli.getPessoa();
					
					nomeCliLabel.setText(nome);
					nomeCliLabel.setVisible(true);
					System.out.println("aki nome "+nomeCliLabel.getText());
				}
				banco.disconnect();
			}
		});
	}
	return ver;
}
	
}  //  @jve:decl-index=0:visual-constraint="10,10"

Por favor preciso de ajuda…
:frowning:

TelaInicial tela = TelaInicial.retornaTelaInicial();

O JDesktopPane desta classe TelaInicial não é static?
Você cria uma novo objeto neste método?

Caso uma dessas alternativas seja verdadeira vc cria um novo JDesktopPane e adiciona o IFrame neste novo desktop que não é visualizado

Oiii…

É o retorna telainical é static, mas na class pesquisa esta sendo usado para colocar a janela mostra dados dentro da tela inicial…

private static TelaInicial instancia;
	//metodo responsavel por criar ou retornar a janela principal (unica)
		public static TelaInicial retornaTelaInicial(){
			if (instancia == null)
				instancia = new TelaInicial();
			return instancia;
		
	}

Eu to precisando de um metodo que eu consigua enviar os dados de uma class para outra e na outra pegar o valor enviado e setar o JLabel…

Mas não to conseguindo…
Sabe de alguma método?

Rpz, cinceramente eu não estou entendendo direito a sua aplicação…

Veja se está certo:

Você tem um internalFrame que contém uma lista de pessoas cadastradas. Quando vc seleciona uma pessoa e clicar no botão “ver” vc quer abrir outra tela com as informações desta pessoa…

É isso?

O InternalFrame chega a aparecer ou aparece mas em branco?

Oi…

Isso mesmo…

A janela jInternalFrame abre em branco…

Rpz vc tem que enviar um objeto Cliente para o construtor de VisualCad e neste construtor adicionar os dados de Cliente nos respectivos componentes e depois adicionar o panel com os componentes ao InternalFrame VisualCad…
Tente fazer assim…

Oi…

pode dar um exemplo?

Troque esta linha (chama = new VisualCad(); ) por:

refaça o construtor como:

[code]

private Cliente cli;

/**
* This is the xxx default constructor
*/
public VisualCad(Cliente c) {
super();
cli == c;
initialize();
} [/code]

Refaça este método:

# private JPanel getJContentPane() { if (jContentPane == null) { nomeCliLabel = new JLabel(); nomeCliLabel.setBounds(new Rectangle(72, 35, 286, 16)); nomeCliLabel.setText(cli.getNome());//pega o nome do cliente e põe no nomeCliLabel System.out.println("vazio "+nomeCliLabel.getText()); cpfCliLabel = new JLabel(); cpfCliLabel.setBounds(new Rectangle(72, 63, 130, 15)); cpfCliLabel.setText(cli.getCpf()); //pega o cpf do cliente e põe no cpfCliLabel . .//por aí vai . } return jContentPane; }

caso ainda esteja aparecendo em branco tente se assim vai:

Troque o 
this.setContentPane(getJContentPane());  
por
add(getJContentPane());

:smiley:

Muito obrigadooooooo…

te devo uma…

Funcionou…

Obrigado.
:smiley:

Beleza! :smiley: