package TextAreaTest; import java.awt.event.*; import javax.swing.*; /** * Questo programma mostra un frame con un'area di testo che visualizza * il logaritmo di numeri inseriti dall'utente *

* Un secondo frame contiene un campo di testo per inserire un numero */ public class TextAreaTest { private static final double DEFAULT_NUM = 1; public static void main(String[] args) { // area di testo per visualizzare i risultati final JTextArea textArea = new JTextArea(10, 30); // per non modificare il contenuto del campo textArea.setEditable(false); JScrollPane scrollPane = new JScrollPane(textArea); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setContentPane(scrollPane); frame.pack(); frame.setVisible(true); // etichetta per l'inserimento di un numero JLabel numLabel = new JLabel("number : "); final JTextField numField = new JTextField(10); numField.setText("" + DEFAULT_NUM); // pulsante JButton calculateButton = new JButton("Calculate"); class CalculateListener implements ActionListener { public void actionPerformed(ActionEvent event) { double number = Double.parseDouble(numField.getText()); textArea.append("x : " + number + " - - ->" + " log(x): " + Math.log(number) + "\n"); } } ActionListener listener = new CalculateListener(); calculateButton.addActionListener(listener); JPanel controlPanel = new JPanel(); controlPanel.add(numLabel); controlPanel.add(numField); controlPanel.add(calculateButton); JFrame controlFrame = new JFrame(); controlFrame.setContentPane(controlPanel); controlFrame.pack(); controlFrame.setVisible(true); } }