Uma caixa de texto, campo de texto ou caixa de entrada de texto é uma espécie de ferramenta utilizada na construção de uma interface gráfica de usuário (GUI). A finalidade de um caixa de texto é o de permitir ao utilizador inserir informações de texto de entrada a ser utilizado pelo programa. Diretrizes de interface do usuário recomendam uma caixa com uma única linha de texto quando é necessária apenas uma linha de entrada, e uma caixa de texto de várias linhas somente se for necessária mais de uma linha de entrada. Caixas de texto não editáveis pode servir ao propósito de simplesmente exibir texto.
JTextArea
A JTextArea é uma área multi-linha que exibe textos simples. Ela destina-se a ser um componente leve que proporciona compatibilidade com a fonte de classe java.awt.TextArea. Usa-se este componente para inserir ou exibir textos.
JScrollPane
Fornece uma visão de rolagem. A JScrollPane gerencia uma janela, barras de rolagem verticais e horizontais opcionais, linhas e título da coluna.
Exemplo:
Neste exemplo criamos um programa com uma área de texto onde se pode editar diretamente o texto ou inserir linhas no texto através de uma caixa de texto simples e um botão.
Java
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class Texto implements ActionListener
{
// Declara Componentes
JLabel rotulo;
JTextArea area;
JTextField texto;
JButton botao;
// Cria painel
public Container CriaPainel()
{
// Cria conteudo da area de texto
String conteudo = "Escreva um texto dentro da caixa de texto \n" +
"Você também pode adicionar novas linhas nesta caixa" +
"Escrevendo no editor e clicando no botão";
// Cria componentes
rotulo = new JLabel("Insira um texto na caixa:");
area = new JTextArea(conteudo);
texto = new JTextField();
botao = new JButton("Ok");
// Cria evento do botão
botao.addActionListener(this);
// Adiciona valores as propriedades da area de texto
area.setFont(new Font("Serif", Font.ITALIC, 12));
area.setLineWrap(true);
area.setWrapStyleWord(true);
// Cria barra de rolagem e adiciona a area de texto
JScrollPane scrooll = new JScrollPane(area);
// Adiciona valores as propriedades da barra de rolagem
// Barra vertical
scrooll.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
// Tamanho da barra
scrooll.setPreferredSize(new Dimension(250, 250));
// Borda com titulo
scrooll.setBorder(
BorderFactory.createCompoundBorder(
BorderFactory.createCompoundBorder(
BorderFactory.createTitledBorder("Caixa de Texto"),
BorderFactory.createEmptyBorder(5,5,5,5)),
scrooll.getBorder()));
// Cria o painel
JPanel painel = new JPanel();
// Cria um layout para os componentes
painel.setLayout(new BoxLayout(painel,BoxLayout.PAGE_AXIS));
painel.setBorder(BorderFactory.createEmptyBorder(20,20,20,20));
// Alinha componentes
rotulo.setAlignmentX(Component.CENTER_ALIGNMENT);
area.setAlignmentX(Component.CENTER_ALIGNMENT);
texto.setAlignmentX(Component.CENTER_ALIGNMENT);
botao.setAlignmentX(Component.CENTER_ALIGNMENT);
// Adiciona componentes no painel
painel.add(rotulo);
painel.add(Box.createVerticalStrut(10));
// Adiciona a barra de rolagem pois a area de texto
// está já foi adiciona dentro dela logo acima.
painel.add(scrooll);
painel.add(Box.createVerticalStrut(5));
painel.add(texto);
painel.add(Box.createVerticalStrut(5));
painel.add(botao);
// Retorna o painel
return painel;
}
public void actionPerformed(ActionEvent arg0)
{
// Cria evento para o botão
if (arg0.getSource() == botao)
{
area.append(texto.getText() + "\n");
}
}
// Cria a GUI
public static void criaGUI()
{
// Cria formulario
JFrame formulario = new JFrame("DA - JTextArea");
formulario.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Cria nova instancia da classe
Texto texto = new Texto();
// adiciona painel ao formulario
formulario.setContentPane(texto.CriaPainel());
// Compacta componetes no formulario
formulario.pack();
// Mostra formulario
formulario.setVisible(true);
}
public static void main(String[] args)
{
// Cria thread do swing
javax.swing.SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
// Chama a GUI
criaGUI();
}
});
}
}


Mas não aparece a barra dentro do espaço de barra…