Testo swing

Da Head First Java O'Reilly, capitolo 13.

JTextField permette all'utente di inserire una riga di testo. Nel caso si vogliano gestire più righe occorre passare a JTextArea, che richiede un po' più di configurazione.

Vediamo allora un piccolo esempio di uso di una text area.

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

public class MyTextArea implements ActionListener {
private JTextArea text;

public MyTextArea() {
JFrame f = new JFrame();

text = new JTextArea(10, 20);
JScrollPane sp = new JScrollPane(text);
sp.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
sp.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);

JPanel p = new JPanel();
p.add(sp);
f.getContentPane().add(BorderLayout.CENTER, p);

JButton b = new JButton("Click me");
b.addActionListener(this);
f.getContentPane().add(BorderLayout.SOUTH, b);

f.setSize(300, 300);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public void actionPerformed(ActionEvent e) {
text.append("Button clicked.\n");
}

public static void main(String[] args) {
new MyTextArea();
}
}

Mettiamo a sud un bottone che ogni volta che viene cliccato scrive del testo sulla textarea. Per far questo registriamo la nostra classe, che implementa l'interfaccia ActionListener, sul bottone, ed eseguiamo l'azione richiesta nel metodo actionPerformed().

La costruzione del widget per la text area, come vediamo, é un po' più laboriosa del solito, in quanto dopo aver creato la text area vera e propria, la piazziamo in un un pannello specializzato (JScrollPane) che permette la gestione delle barre di scorrimento associate alla text area.

Nessun commento:

Posta un commento