Adicionar texto de uma JTextArea para outra JtextArea e dimensionamento!

Bom dia pessoal!!!

Estou com um problema e como sou novo em swing algumas dificuldades em encontrar a solução…

Quero fazer uma janela parecida com messenger… 2 caixas de texto (1 pra digitar outra pra exibir), 1 botão enviar e 1 scroll, por enquanto.

Usei JFrame e fiz 2 pannels:

textoPanel: 1 textArea com 1 scroll
envioPanel: 1 textArea e 1 botão

Meus problemas são 3:

1 - A janela abre, aparece apenas o botão embaixo, e as caixas de texto ficam praticamente “invisíveis” (a nao ser que eu predefina um texto inicial para aparecer escrito, como no código… aí o tamanho da JTextArea varia de acordo com o que está escrito), gostaria de um tamanho predefinido, se possivel nao em pixel mas em ajuste com o tamanho da janela.

2 - Quando digito algo no JTextArea do envioPanel queria que a action do botão enviar adicionasse o texto no JTextArea do textoPanel, porém o método que imaginei (add) nao é aceito.

2 - Quero digitar o texto apenas na janela do envioPanel, e quero “travar” o JTextArea do textoPanel para somente MOSTRAR o texto.

Segue abaixo o código inteiro, e o erro do meu problema 2 (do add):

[code]package gui;

import java.awt.BorderLayout;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;

public class MsgWindow extends JFrame implements ActionListener {

// variáveis
private static final long serialVersionUID = 1L;
private JTextArea areaTexto = new JTextArea("CARAMBAAAAAAAAAAAAAAAAA!\n\n\n\n\n\n\n\n\n");
private JButton botaoEnvia = new JButton("Envia");
private JTextArea envioTexto = new JTextArea("Digite Aqui sua mensagem!");
private JPanel textoPanel = new JPanel();
private JPanel envioPanel = new JPanel();
private JScrollPane scroll = new JScrollPane(areaTexto);

// construtor
public MsgWindow() {
	super("dpk");
	this.setSize(600, 400);
	this.setTitle("D-Pk");
} // fim construtor

private void montaJanela() {
	
	// montando area de texto no textoPanel
	textoPanel.setSize(300, 200); //setSize que tentei dar para ver se mudava algo
	textoPanel.add(areaTexto, JPanel.TOP_ALIGNMENT);
	textoPanel.add(scroll);
	getContentPane().add(textoPanel, BorderLayout.NORTH);
	
	// montando area de envio de mensagens
	envioPanel.add(envioTexto);
	envioPanel.add(botaoEnvia);
	getContentPane().add(envioPanel, BorderLayout.SOUTH);
	
	// adicionais
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	setVisible(true);
} // fim montaJanela


public void actionPerformed(ActionEvent e) {
	//String textoMensagem = "";
	if (envioTexto.getText() != "") {
	areaTexto.add(envioTexto.getText());
	}
} // fim action



public static void main (String args[]) {
	MsgWindow msg = new MsgWindow();
	msg.montaJanela();
} // fim main

} // fim class[/code]

Erro: The method add(String, Component) in the type Container is not applicable for the arguments (String)

Alguém pode me ajudar???

Obrigado!!!

Ao invés de
areaTexto.add(envioTexto.getText());

você queria dizer:
areaTexto.append(envioTexto.getText());

Não é isso?

Antes de adicionar areaTexto no panel, dentro do método montaJanela() faça:
areaTexto.setEditable(false);

Isso impedirá edições no TextArea.

Muito obrigado Viny!
Isso resolveu meus problemas 2 e 3!!!

Alguma sugestão para o problema número 1?

Mto obrigado!

O problema 1 é um pouco mais complexo.

Você precisa estudar um pouco sobre LayoutManagers do Swing. Ou então, baixar um IDE com editor visual.

O Eclipse tem o Visual Editor (que deve ser baixado separadamente) e o Netbeans vem com o Matisse (já integrado).

Os ides te facilitam muito nesse sentido.

bom estou com um probleminha aqui, o .append add a string desejada, o problema é que ele sempre adiciona no final do textarea, quero saber se tem como ele add a string no local onde esta selecionado.

Tipo, estou criando um ide pra facilitar a criação de scripts cleo, quando clico no bt “Add Car” por exemplo ele add as linhas de códigos como eu queria, mas sempre no final do código… queria que ele add no local onde estava selecionado, tem como?