Dados de um Jtextarea para outro em tempo de execução

1 resposta
java
I

Bom dia

Estou com a seguinte dificuldade:

Possuo um Jframe que abre outro Jframe onde este 2º devolve dados para o 1º Jframe
que recebe os mesmos por um JTextArea.

Já testei o recebimento das informações por JOPtionPane e está recebendo normalmente.

A questão é que os dados recebidos NÃO CARREGAM no Jtextarea do primeiro Jframe.

OBS: Já tentei o repaint(); e outras questões que achei na WEB sem sucesso.

Segue abaixo o código que envia e o código que recebe para preencher o JtextArea.

Se alguém puder me ajudar, agradeço muito!

• Esta é a classe que deve receber o conteúdo e preencher o JTextArea
public void recebePerfil(String perfil) {

					perfilRecebido = perfil;

					JOptionPane.showMessageDialog(null, perfilRecebido);
					new Thread(new Runnable() {
					public void run() {
					taRecebe.append(perfilRecebido);

			}

			}).start();

			}

• Esta é a classe que envia dos dados para o primeiro JFRame para preenchimento do seu JTextArea

public void preencheRecebe() {

						modelo.setDescPerfil(ckPerfil.getText());
						modelo.setObsPerfil(cbPerfil.getSelectedItem().toString());

						recebe.recebePerfil(modelo.getDescPerfil());
						recebe.recebePerfil(modelo.getObsPerfil());

				}

1 Resposta

I

Consegui, vou deixar as classes aqui com contribuição:Esta é a classe que retorna a informação:

package Testes;

	import java.awt.EventQueue;
	import java.awt.event.ActionEvent;
	import java.awt.event.ActionListener;

	import javax.swing.DefaultComboBoxModel;
	import javax.swing.JButton;
	import javax.swing.JCheckBox;
	import javax.swing.JComboBox;
	import javax.swing.JFrame;
	import javax.swing.JPanel;
	import javax.swing.border.EmptyBorder;
	import javax.swing.border.EtchedBorder;

	public class Tela_Envia extends JFrame implements ActionListener {

		Model_Perfil modelo = new Model_Perfil();
		private Tela_Recebe recebe;

		JPanel contentPane;
		private JButton btnEnviar;
		private JPanel pnEnvia;
		private JCheckBox ckPerfil;
		private JComboBox cbPerfil;

		// CLASSE MAIN
		public static void main(String[] args) {
			EventQueue.invokeLater(new Runnable() {
				public void run() {
					try {
						Tela_Envia frame = new Tela_Envia();
						frame.setVisible(true);
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			});
		}

		// CONSTRUTOR
		public Tela_Envia() {
			setTitle("Tela Envia");
			setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			setBounds(800, 350, 645, 213);
			contentPane = new JPanel();
			contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
			setContentPane(contentPane);
			contentPane.setLayout(null);

			btnEnviar = new JButton("Enviar");
			btnEnviar.addActionListener(this);
			btnEnviar.setBounds(530, 140, 89, 23);
			contentPane.add(btnEnviar);

			pnEnvia = new JPanel();
			pnEnvia.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
			pnEnvia.setBounds(10, 11, 609, 120);
			contentPane.add(pnEnvia);
			pnEnvia.setLayout(null);

			ckPerfil = new JCheckBox("Perfil 1 e 7 - Simples Nacional ");
			ckPerfil.setSelected(true);
			ckPerfil.setBounds(67, 49, 204, 23);
			pnEnvia.add(ckPerfil);

			cbPerfil = new JComboBox();
			cbPerfil.setModel(new DefaultComboBoxModel(new String[] { "Vai dar Certo" }));
			cbPerfil.setBounds(338, 49, 204, 23);
			pnEnvia.add(cbPerfil);
		}

		// MOSTRA TELA RECEBE
		public void mostraRecebe(Tela_Recebe tlRecebe) {

			this.recebe = tlRecebe;
			setVisible(true);

		}

		// ALIMENTA TELA RECEBE
		public void preencheRecebe() {

			modelo.setDescPerfil(ckPerfil.getText());
			modelo.setObsPerfil(cbPerfil.getSelectedItem().toString());

			recebe.recebePerfil(modelo.getDescPerfil() + " - " + modelo.getObsPerfil() + "\n");

		}

		// BOTÕES
		public void actionPerformed(ActionEvent ck2) {
			// TODO Auto-generated method stub
			if (ck2.getSource() == btnEnviar) {
				preencheRecebe();
			}
		}
	}

Agora esta é a classe que recebe os valores, bem simples de realizar:

package Testes;

	import java.awt.Color;
	import java.awt.EventQueue;
	import java.awt.Font;
	import java.awt.event.ActionEvent;
	import java.awt.event.ActionListener;

	import javax.swing.JButton;
	import javax.swing.JFrame;
	import javax.swing.JPanel;
	import javax.swing.JTextArea;
	import javax.swing.border.EmptyBorder;
	import javax.swing.border.EtchedBorder;

	public class Tela_Recebe extends JFrame implements ActionListener {

		Tela_Envia telaEnvia = new Tela_Envia();

		JPanel Janela_1;
		private JButton btnAbreJanelaEnvia;
		JPanel pnRecebe;
		JTextArea taRecebe;
		private String perfilRecebido;

		// CLASSE MAIN
		public static void main(String[] args) {
			EventQueue.invokeLater(new Runnable() {
				public void run() {
					try {
						Tela_Recebe frame = new Tela_Recebe();
						frame.setVisible(true);
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			});
		}

		// CONSTRUTOR
		public Tela_Recebe() {
			setTitle("Janela Recebe");
			setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			setBounds(100, 100, 689, 475);
			Janela_1 = new JPanel();
			Janela_1.setBorder(new EmptyBorder(5, 5, 5, 5));
			setContentPane(Janela_1);
			Janela_1.setLayout(null);

			btnAbreJanelaEnvia = new JButton("Abre Janela Envia");
			btnAbreJanelaEnvia.addActionListener(this);
			btnAbreJanelaEnvia.setBounds(446, 402, 217, 23);
			Janela_1.add(btnAbreJanelaEnvia);

			pnRecebe = new JPanel();
			pnRecebe.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
			pnRecebe.setBounds(10, 11, 653, 380);
			Janela_1.add(pnRecebe);
			pnRecebe.setLayout(null);

			taRecebe = new JTextArea();
			taRecebe.setForeground(Color.RED);
			taRecebe.setFont(new Font("Arial", Font.PLAIN, 12));
			taRecebe.setText("Este texto deve ser substitu\u00EDdo pelo da janela Envia....");
			taRecebe.setBounds(10, 11, 633, 358);
			pnRecebe.add(taRecebe);
		}

		// RECEBE VALORES PARA ALIMENTAR JTEXTAREA
		public void recebePerfil(String perfil) {

			Tela_Envia Envia = new Tela_Envia();
			perfilRecebido = perfil;
			taRecebe.append(perfilRecebido);

		}

		// BOTÕES
		public void actionPerformed(ActionEvent ck1) {

			// TODO Auto-generated method stub
			telaEnvia.mostraRecebe(this);
		}
	}

Obrigado!

Criado 18 de maio de 2020
Ultima resposta 18 de mai. de 2020
Respostas 1
Participantes 1