Bug em passar dados String entre dois JInternalFrames

4 respostas Resolvido
jframejava
Lucas_Santos_Ribeiro

Estou a desenvolver um projeto e montei um exemplo semelhante para demonstrar o que está a ocorrer. Nele, quando eu clico no botão para invocar uma outra JInternalFrame, aparece a outra JInternalFrame, eu digito no campo o valor que quero e clico no botão e logo que clico no botão a janela fecha, perfector. Mas, ao fechar a janela o campo de texto da primeira janela não recebe o valor que eu tinha digitado na segunda janela. O campo recebe apenas depois que eu clico no botão pela segunda vez e eu não sei como corrigir este problema tão simples que está me dando muitas dores de cabeça.

Cá está os códigos:
Principal

`package botaoOutraJanela;

public class Principal extends javax.swing.JFrame {

public Principal() {
    initComponents();
}

@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">                          
private void initComponents() {

    painel = new javax.swing.JDesktopPane();
    jMenuBar1 = new javax.swing.JMenuBar();
    jMenu1 = new javax.swing.JMenu();
    jMenuItem1 = new javax.swing.JMenuItem();
    jMenuItem2 = new javax.swing.JMenuItem();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    javax.swing.GroupLayout painelLayout = new javax.swing.GroupLayout(painel);
    painel.setLayout(painelLayout);
    painelLayout.setHorizontalGroup(
        painelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 644, Short.MAX_VALUE)
    );
    painelLayout.setVerticalGroup(
        painelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 368, Short.MAX_VALUE)
    );

    jMenu1.setText("Menu de Janelas");

    jMenuItem1.setText("Janela 1");
    jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItem1ActionPerformed(evt);
        }
    });
    jMenu1.add(jMenuItem1);

    jMenuItem2.setText("Janela 2");
    jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItem2ActionPerformed(evt);
        }
    });
    jMenu1.add(jMenuItem2);

    jMenuBar1.add(jMenu1);

    setJMenuBar(jMenuBar1);

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addComponent(painel)
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addComponent(painel)
    );

    pack();
}// </editor-fold>                        

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
    Janela_1 janela1 = new Janela_1();
    painel.add(janela1);
    janela1.show();
}                                          

private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {                                           
    Janela_2 janela2 = new Janela_2();
    painel.add(janela2);
    janela2.show();
}                                          

public static void main(String args[]) {

    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new Principal().setVisible(true);
        }
    });
}

// Variables declaration - do not modify                     
private javax.swing.JMenu jMenu1;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JMenuItem jMenuItem1;
private javax.swing.JMenuItem jMenuItem2;
private javax.swing.JDesktopPane painel;
// End of variables declaration
}

<strong>Janela 1</strong>`

package botaoOutraJanela;

public class Janela_1 extends javax.swing.JInternalFrame {

private Janela_2 Janela_2;

public Janela_1() {
    initComponents();
    this.Janela_2 = new Janela_2();
}

@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">                          
private void initComponents() {

    jLabel1 = new javax.swing.JLabel();
    jLabel2 = new javax.swing.JLabel();
    txt = new javax.swing.JTextField();
    jButton1 = new javax.swing.JButton();

    jLabel1.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
    jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    jLabel1.setText("Janela 1");

    jLabel2.setText("Digite aqui: ");

    jButton1.setText("Mandar");
    jButton1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton1ActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addContainerGap()
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                    .addGap(0, 0, Short.MAX_VALUE)
                    .addComponent(jLabel2)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(jButton1)
                        .addComponent(txt, javax.swing.GroupLayout.PREFERRED_SIZE, 142, javax.swing.GroupLayout.PREFERRED_SIZE))))
            .addContainerGap())
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addContainerGap()
            .addComponent(jLabel1)
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(jLabel2)
                .addComponent(txt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addComponent(jButton1)
            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    );

    pack();
}// </editor-fold>                        

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    this.Janela_2.setVisible(true);
    this.txt.setText(String.valueOf(this.Janela_2.getValor2()));
}                                        
// Variables declaration - do not modify                     
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JTextField txt;
// End of variables declaration
}

<strong>Janela 2</strong>

package botaoOutraJanela;

public class Janela_2 extends javax.swing.JFrame {

private String valor2;

public Janela_2() {
    initComponents();
}

@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">                          
private void initComponents() {

    jLabel1 = new javax.swing.JLabel();
    jLabel2 = new javax.swing.JLabel();
    txt2 = new javax.swing.JTextField();
    jButton1 = new javax.swing.JButton();

    jLabel1.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
    jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    jLabel1.setText("Janela_2");

    jLabel2.setText("Digite aqui: ");

    jButton1.setText("Transferir");
    jButton1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton1ActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addContainerGap()
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 189, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(0, 0, Short.MAX_VALUE))
                .addGroup(layout.createSequentialGroup()
                    .addComponent(jLabel2)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(layout.createSequentialGroup()
                            .addComponent(jButton1)
                            .addGap(0, 0, Short.MAX_VALUE))
                        .addComponent(txt2))))
            .addContainerGap())
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(jLabel2)
                .addComponent(txt2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addComponent(jButton1)
            .addGap(0, 170, Short.MAX_VALUE))
    );

    pack();
}// </editor-fold>                        

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    this.valor2 = this.txt2.getText();
    this.dispose();
}                                        
// Variables declaration - do not modify                     
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JTextField txt2;
// End of variables declaration                   

public String getValor2() {
    return valor2;
}

public void setValor2(String valor2) {
    this.valor2 = valor2;
}

}

4 Respostas

staroski

Na classe Principal:

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
		Janela_1 janela1 = new Janela_1(); // aqui está criando uma nova Janela_1 
		painel.add(janela1);
		janela1.show();
	}

	private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
		Janela_2 janela2 = new Janela_2(); // aqui está criando uma nova Janela_2
		painel.add(janela2);
		janela2.show();
	}

Na classe Janela_1:

public Janela_1() {
		initComponents();
		this.Janela_2 = new Janela_2(); // aqui está criando uma nova Janela_2
	}

Tenha em mente que a intrução new serve justamente para criar uma nova instância.

Na classe Principal você cria uma nova intância de Janela_1 e uma nova instância de Janela_2 a cada clicada no item de menu.

E na instância da classe Janela_1 você cria novamente uma nova intância de Janela2
Ou seja, não é o mesmo objeto, é um objeto novo.

Resumindo, você está sempre criando novas intâncias das janelas, sendo que o que você realmente quer é conversar com as intâncias já existentes.

Uma forma de resolver, é criar uma classe que controle as intâncias das Janelas, veja:

public class Janelas {

	private Janela_1 janela_1;
	private Janela_2 janela_2;

	public Janela_1 getJanela_1() {
		if (janela_1 == null) {
			janela_1 = new Janela_1(this);
		}
		return janela_1;
	}

	public Janela_2 getJanela_2() {
		if (janela_2 == null) {
			janela_2 = new Janela_2(this);
		}
		return janela_2;
	}
}

E aí é só alterar seu fonte para utilizar esta classe controladora:

public class Principal extends javax.swing.JFrame {

	// objeto que mantém as intâncias das Janelas
	private final Janelas janelas = new Janelas();

	public Principal() {
		initComponents();
	}

	@SuppressWarnings("unchecked")
	// <editor-fold defaultstate="collapsed" desc="Generated Code">
	private void initComponents() {

		painel = new javax.swing.JDesktopPane();
		jMenuBar1 = new javax.swing.JMenuBar();
		jMenu1 = new javax.swing.JMenu();
		jMenuItem1 = new javax.swing.JMenuItem();
		jMenuItem2 = new javax.swing.JMenuItem();

		setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

		javax.swing.GroupLayout painelLayout = new javax.swing.GroupLayout(painel);
		painel.setLayout(painelLayout);
		painelLayout.setHorizontalGroup(painelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 644, Short.MAX_VALUE));
		painelLayout.setVerticalGroup(painelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 368, Short.MAX_VALUE));

		jMenu1.setText("Menu de Janelas");

		jMenuItem1.setText("Janela 1");
		jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jMenuItem1ActionPerformed(evt);
			}
		});
		jMenu1.add(jMenuItem1);

		jMenuItem2.setText("Janela 2");
		jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jMenuItem2ActionPerformed(evt);
			}
		});
		jMenu1.add(jMenuItem2);

		jMenuBar1.add(jMenu1);

		setJMenuBar(jMenuBar1);

		javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
		getContentPane().setLayout(layout);
		layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(painel));
		layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(painel));

		pack();
	}// </editor-fold>

	private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
		// não está criando sempre uma nova Janela_1,
		//  usa a Janela_1 já existente
		Janela_1 janela1 = janelas.getJanela_1();
		painel.add(janela1);
		janela1.show();
	}

	private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
		// não está criando sempre uma nova Janela_2,
		//  usa a Janela_2 já existente
		Janela_2 janela2 = janelas.getJanela_2();
		painel.add(janela2);
		janela2.show();
	}

	public static void main(String args[]) {

		java.awt.EventQueue.invokeLater(new Runnable() {
			public void run() {
				new Principal().setVisible(true);
			}
		});
	}

	// Variables declaration - do not modify
	private javax.swing.JMenu jMenu1;
	private javax.swing.JMenuBar jMenuBar1;
	private javax.swing.JMenuItem jMenuItem1;
	private javax.swing.JMenuItem jMenuItem2;
	private javax.swing.JDesktopPane painel;
	// End of variables declaration
}
public class Janela_1 extends javax.swing.JInternalFrame {

	private final Janelas janelas;

	public Janela_1(Janelas janelas) {
		this.janelas = janelas;
		initComponents();
	}

	@SuppressWarnings("unchecked")
	// <editor-fold defaultstate="collapsed" desc="Generated Code">
	private void initComponents() {

		jLabel1 = new javax.swing.JLabel();
		jLabel2 = new javax.swing.JLabel();
		txt = new javax.swing.JTextField();
		jButton1 = new javax.swing.JButton();

		jLabel1.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
		jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
		jLabel1.setText("Janela 1");

		jLabel2.setText("Digite aqui: ");

		jButton1.setText("Mandar");
		jButton1.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jButton1ActionPerformed(evt);
			}
		});

		javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
		getContentPane().setLayout(layout);
		layout.setHorizontalGroup(
				layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
						.addGroup(layout.createSequentialGroup().addContainerGap()
								.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
										.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addGroup(
												javax.swing.GroupLayout.Alignment.TRAILING,
												layout.createSequentialGroup().addGap(0, 0, Short.MAX_VALUE).addComponent(jLabel2).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
														.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jButton1).addComponent(txt,
																javax.swing.GroupLayout.PREFERRED_SIZE, 142, javax.swing.GroupLayout.PREFERRED_SIZE))))
								.addContainerGap()));
		layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
				.addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jLabel1).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
						.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel2).addComponent(txt, javax.swing.GroupLayout.PREFERRED_SIZE,
								javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
						.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jButton1).addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));

		pack();
	}// </editor-fold>

	private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
		// não está criando sempre uma nova Janela_2,
		//  usa a Janela_2 já existente
		Janela_2 janela_2 = janelas.getJanela_2();
		janela_2.setVisible(true);
		this.txt.setText(String.valueOf(janela_2.getValor2()));
	}

	// Variables declaration - do not modify
	private javax.swing.JButton jButton1;
	private javax.swing.JLabel jLabel1;
	private javax.swing.JLabel jLabel2;
	private javax.swing.JTextField txt;
	// End of variables declaration
}
public class Janela_2 extends javax.swing.JFrame {

	private String valor2;

	private final Janelas janelas;

	public Janela_2(Janelas janelas) {
		this.janelas = janelas;
		initComponents();
	}

	@SuppressWarnings("unchecked")
	// <editor-fold defaultstate="collapsed" desc="Generated Code">
	private void initComponents() {

		jLabel1 = new javax.swing.JLabel();
		jLabel2 = new javax.swing.JLabel();
		txt2 = new javax.swing.JTextField();
		jButton1 = new javax.swing.JButton();

		jLabel1.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
		jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
		jLabel1.setText("Janela_2");

		jLabel2.setText("Digite aqui: ");

		jButton1.setText("Transferir");
		jButton1.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jButton1ActionPerformed(evt);
			}
		});

		javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
		getContentPane().setLayout(layout);
		layout.setHorizontalGroup(
				layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
						.addGroup(
								layout.createSequentialGroup().addContainerGap()
										.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
												.addGroup(layout.createSequentialGroup()
														.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 189, javax.swing.GroupLayout.PREFERRED_SIZE).addGap(0, 0, Short.MAX_VALUE))
												.addGroup(layout.createSequentialGroup().addComponent(jLabel2).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
														.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
																.addGroup(layout.createSequentialGroup().addComponent(jButton1).addGap(0, 0, Short.MAX_VALUE)).addComponent(txt2))))
										.addContainerGap()));
		layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
				.addGroup(layout.createSequentialGroup().addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)
						.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
						.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel2).addComponent(txt2, javax.swing.GroupLayout.PREFERRED_SIZE,
								javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
						.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jButton1).addGap(0, 170, Short.MAX_VALUE)));

		pack();
	}// </editor-fold>

	private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
		this.valor2 = this.txt2.getText();
		this.dispose();
	}

	// Variables declaration - do not modify
	private javax.swing.JButton jButton1;
	private javax.swing.JLabel jLabel1;
	private javax.swing.JLabel jLabel2;
	private javax.swing.JTextField txt2;
	// End of variables declaration

	public String getValor2() {
		return valor2;
	}

	public void setValor2(String valor2) {
		this.valor2 = valor2;
	}
}
Lucas_Santos_Ribeiro

Boa tarde @staroski , obrigado pela sua resposta. Eu fiz as devidas mudanças e ainda assim o valor é passado para o outro campo apenas se eu abrir a Janela_2 ela segunda vez. Abraços

staroski
Solucao aceita

Esperava que você percebesse o bug após implementar o controlador das instâncias.

Sua lógica está errada quando você clica nos botões, pois você não está enviando os valores de uma janela pra outra.

Sugiro fazer o seguinte, tanto na Janela_1 quanto na Janela_2, crie os seguintes métodos para atribuir valor ao campo de texto e obter o valor do mesmo:

public void setValor(String valor) {
	txt.setText(valor);
}

public String getValor() {
	return txt.getText();
}

Em seguida altere sua Janela_1 para ficar assim:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
	Janela_1 janela_1 = this; // não precisaria disto, mas fica mais legivel
	Janela_2 janela_2 = janelas.getJanela_2();
	// enviar o valor da janela 1 para a janela 2
	janela_2.setValor(janela_1.getValor());
	// apresenta janela 2
	janela_2.setVisible(true);
}

E sua Janela_2 para ficar assim:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
	Janela_1 janela_1 = janelas.getJanela_1();
	Janela_2 janela_2 = this; // não precisaria disto, mas fica mais legivel
	// enviar o valor da janela 2 para a janela 1
	janela_1.setValor(janela_2.getValor());
	// abrir janela
	janela_1.setVisible(true);
}
Lucas_Santos_Ribeiro

Muito obrigado, me ajudou a resolver este problema! :+1::+1::+1:

Criado 10 de novembro de 2016
Ultima resposta 14 de nov. de 2016
Respostas 4
Participantes 2