Pegar dados de um Frame e jogar em outro Frame

Não to sabendo como fazer, se alguem puder me ajudar eu agradeço tenho um trabalho pra entregar e nao sei como far isso: pegar os dados de uma tabela com o click de um botão dentro de um frame e ao clicar desse botão jogar os dados em um outro frame…

como mostra o codigo abaxo…


private void OkParaTabelaMouseClicked(java.awt.event.MouseEvent evt) {
         int linha, coluna;
         linha = TrazClientes.getSelectedRow();
         
         NovoCodigo.setText(TabeladeConsulta.getValueAt(linha,0).toString());
         DigiteNome.setText(TabeladeConsulta.getValueAt(linha,1).toString());
         DigiteCpf.setText((String) TabeladeConsulta.getValueAt(linha,2));
         
         cli.setCliCodigo(Integer.parseInt(NovoCodigo.getText()));
         cli.setCliNome(NovoCodigo.getText());
         cli.setCliCpf(NovoCodigo.getText());
         BotaoConfirmar.setEnabled(false); 
         
         jTabbedPane1.setSelectedIndex(0); // aqui tambem deve mudar ?????????
         
         /* Tenho que pegar esses dados e jogar no: NovoCodigo ,
         DigiteNome, Digite o CPF , só q ele estao em outro frame no
         FrameCadastroCliente ...  como eu faço ????????????? */
     }

Desde ja eu deixo meu muito obrigado !!!

Agradeceríamos se vc não postasse sua dúvida em dois fóruns diferentes concorda?

Tua dúvida é sobre GUI e vc postou aqui e no Java básico. Pq num postou no de Interface Gráfica?

Não faça mais isso :wink:

Vc precisa criar uma maneira de um dois seus jFrames enxergar o outro, ou seja, um deles precisa ter uma referencia do outro para que os dados possam ser acessados.

Falow!

Me desculpe, eu sou novo aqui e não sabia como funcionava

Obrigadooo

Vlwwwww

Decidi não postar código, estou com preguiça, :smiley:

Mas lá vai:

vc vai ter a classe Boot. essa classe vai ter o Frame1 e o Frame2, tudo certo?

Frame1 e frame2 tem uma interface pública que permite fazer um get e set numa, por exemplo caixa de texto no Frame1 e uma lista no Frame2;

Não necessariamente vc vai passar como parâmetro pra Frame1 a Frame2 ou vice-versa, como é de se esperar para que as janelas “conversassem”. Eu faria isso no ouvinte, tipo: Implemente um ouvinte que receba os dois de parâmetro de alguma forma (seja no construtor ou via algum método)
e, após as instâncias perfeitamente referenciadas dentro do construtor vc dá um jeito de registrar esse ouvinte para o botão (ou lista, qualquer coisa) que vc quer apertar, seja no Frame1 ou no Frame2; aí morre o abacaxi, porque via interface pública de ambos os frames vc vai ser capaz de mexer com os valores;

aff, acabei fazendo código, :smiley:

import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.FlowLayout;

public class Boot{
	
	public static void main(String[]aaa){
		Frame1 f1 = new Frame1();
		Frame2 f2 = new Frame2();
		Ouvinte o = new Ouvinte(f1,f2);
	}
}

class Frame1 extends JFrame implements Janelas{
	
	private JTextField texto1;
	private JButton swap;

	public Frame1(){
		setTitle("Tela 1");
		setBounds(20,20,200,300);
		setLayout(new FlowLayout());
		texto1 = new JTextField("                    ");
		add(texto1);
		swap = new JButton("Trocar");
		add(swap);
		pack();
		setVisible(true);
	}
	
	public String getData(){
		return texto1.getText();
	}

	public void setData(String data){
		texto1.setText(data);
	}

	public void registerListener(ActionListener l){
		swap.addActionListener(l);
	}
}

class Frame2 extends JFrame implements Janelas{
	
	private JTextField texto2;
	private JButton swap;
	
	public Frame2(){
		setTitle("Tela 2");
		setBounds(400,400,200,300);
		setLayout(new FlowLayout());
		texto2 = new JTextField("                    ");
		add(texto2);
		swap = new JButton("Trocar");
		add(swap);
		pack();
		setVisible(true);
	}
	
	public String getData(){
		return texto2.getText();
	}

	public void setData(String data){
		texto2.setText(data);
	}

	public void registerListener(ActionListener l){
		swap.addActionListener(l);
	}
}

class Ouvinte implements ActionListener{

	private Janelas f1;
	private Janelas f2;
	
	public Ouvinte(Janelas f1,Janelas f2){
		this.f1=f1;
		this.f2=f2;
		f1.registerListener(this);
		f2.registerListener(this);
	}

	public void actionPerformed(ActionEvent e){
		String aux = f1.getData();
		f1.setData(f2.getData());
		f2.setData(aux);
	}
}

interface Janelas{	
	public void registerListener(ActionListener l);
	public String getData();
	public void setData(String data);
}

veja se gosta e aperfeiçoe a idéia, ok? Note que se vc quisesse algo mais específico em telas mais elaboradas, precsiaria arrumar um jeito de saber quem disparou o evento; mas isso vc pergunta dnovu, :smiley: ou mesmo descobre sozim e dá help pra alguém futuramente, :smiley:

té+++ :smiley:

Sombriks… :thumbup:

obridado msm cara … veleu!!!
pode deixa se eu puder dar um help pra alguem,
vou fazer sim… valeu msm.

abraços :smiley:
San.