criando componentes de texto

Os componentes para manipulação de texto são 3:

  • JTextField – caixa de texto com uma linha
  • JTextArea – caixa de texto com várias linhas
  • JLabel – rótulo de texto

O exemplo abaixo demonstra algumas funcionalidades dos três componentes, entre elas podemos destacar:

a alteração do conteúdo da textArea, usando como origem o texto que esta no textField
textArea.append(text + ” “);

a atribuição de tratador de evento para uma caixa de texto
textField.addActionListener(this);

o uso de uma imagem em um label
pizza = new JLabel(“pedido de Pizza”, icone, JLabel.LEFT);

Veja o código completo do exemplo

Textos.java
01 package br.com.thz;
02 
03 import java.awt.Container;
04 import java.awt.FlowLayout;
05 import java.awt.event.ActionEvent;
06 import java.awt.event.ActionListener;
07 import java.awt.event.KeyEvent;
08 
09 import javax.swing.ImageIcon;
10 import javax.swing.JButton;
11 import javax.swing.JFrame;
12 import javax.swing.JLabel;
13 import javax.swing.JTextArea;
14 import javax.swing.JTextField;
15 
16 public class Textos extends JFrame implements ActionListener {
17 
18   JButton b1;
19 
20   JTextField textField;
21 
22   JTextArea textArea;
23 
24   JLabel pizza;
25 
26   public Textos() {
27 
28     b1 = new JButton("Adicionar");
29     b1.setMnemonic(KeyEvent.VK_A);
30     b1.setActionCommand("adicionar");
31     b1.addActionListener(this);
32     b1.setToolTipText("Click neste botão para " "adicionar o pedido");
33 
34     ImageIcon icone = new ImageIcon("image/pizza.gif");
35     pizza = new JLabel("pedido de Pizza", icone, JLabel.LEFT);
36 
37     textField = new JTextField(15);
38     textField.addActionListener(this);
39 
40     textArea = new JTextArea(1015);
41 
42     setIconImage(icone.getImage());
43     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
44     setLocationRelativeTo(null);
45 
46     Container c = getContentPane();
47 
48     c.setLayout(new FlowLayout());
49     c.add(pizza);
50     c.add(textField);
51     c.add(b1);
52     c.add(textArea);
53     pack();
54 
55   }
56 
57   // recebe os eventos do botão e da caixa de texto
58   public void actionPerformed(ActionEvent e) {
59     String text = textField.getText();
60     textArea.append(text + " ");
61     textField.selectAll();
62   }
63 
64   public static void main(String[] args) {
65     Textos janela = new Textos();
66     janela.show();
67   }
68 }

Veja como fica o resultado :

janela-textos.gif
O resultado visual da aplicação será melhor se tivessemos aplicado outro gerenciador de layout que não o FlowLayout que somente coloca um componente ao lado do outro, veremos em outra lição como melhorar esta disposição visual.

Leave a Reply