/*
  Utilizzo di JApplet e le classi di javax.swing.
  Questo applet contiene un bottone e un campo di testo nel quale l'utente
  puo' scrivere il suo messaggio. Quando viene premuto il bottone, in un 
  altro campo di testo viene ricopiato il messaggio scritto in un font 
  differente. 
*/

import javax.swing.JButton;
import javax.swing.JTextField; 
import java.awt.Font;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JApplet;
import java.awt.Container;
import java.awt.FlowLayout;


public class AppletConBottone2 extends JApplet {

    private JTextField campoTestoInput; 
    private JTextField campoTestoOutput;

    private JButton traduttore;
    private Font fontGrande;

    public void init() {
	campoTestoInput = new JTextField(20);
	campoTestoOutput = new JTextField(20);
	campoTestoOutput.setEditable(false);

	traduttore = new JButton("converti");
	fontGrande = new Font("Serif", Font.BOLD, 24);

	campoTestoOutput.setFont(fontGrande);
	campoTestoInput.setText("inserire testo");
	campoTestoOutput.setText("testo tradotto");

	Ricevitore ricevitore = new Ricevitore();
	traduttore.addActionListener(ricevitore);

	// principale differenza rispetto ad un applet: in un JApplet 
	// non si puo' inserire direttamente un campo di testo, un 
	// bottone o un disegno, ma bisogna inserirli in un oggetto 
	// di tipo "Container" che si ottiene dal JApplet con il 
	// metodo getContentPane():
	Container pannello = getContentPane();

	// una volta ottenuto il pannello in cui disegnare, per esso
	// si puo' definire il Layout e in esso si possono inserire 
	// i contenuti da visualizzare:

	pannello.setLayout(new FlowLayout());
	pannello.add(campoTestoInput); 
	pannello.add(traduttore);
	pannello.add(campoTestoOutput);

    }

    // la classe che definisce il ricevitore di eventi usato 
    // dal bottone:
    class Ricevitore implements ActionListener {
	public void actionPerformed(ActionEvent e) {
	    String testo = campoTestoInput.getText();
	    campoTestoOutput.setText(testo);
	}
    }

}
