import java.awt.*; // AWT-Grafikklassen importieren import java.awt.event.*; // AWT-Eventklassen importieren import java.applet.*; // Enthält die Definition der Applet-Klasse public class Addieren extends Applet { // Da wir auf die Textfelder und Button von mehreren Methoden aus zugreifen wollen, // definieren wir sie direkt hier in der Klasse. private final static Label label1 = new Label("Zahl 1:"); private final static Label label2 = new Label("Zahl 2:"); private final static TextField zahl1 = new TextField("", 20); // 1. Textfeld private final static TextField zahl2 = new TextField("", 20); // 2. Textfeld private final static Button addieren = new Button("Addieren"); // Ein Knopf-Objekt private final static Font font = new Font("SansSerif", Font.BOLD, 16); // init(): GUI aufbauen, WENN als Applet gestartet. public void init() { // Grid Layout der Elemente setLayout(new GridLayout(3,2)); // Zeichensatz setFont(font); add(label1); add(zahl1); add(label2); add(zahl2); add(addieren); addieren.addMouseListener(new MouseAdapter(){ public void mouseClicked(MouseEvent e){ // Ergebnis zeigen showResult(); }}); } // main() wird in der Variante "Standalone-Anwendung" verwendet. // Wenn das Programm als Applet läuft (im Browser) wird main() ignoriert. public static void main(String[] args){ Frame frame = new Frame("Addieren"); // Fenster frame.setSize(400,150); // Applet erzeugen Addieren applet = new Addieren(); // Applet mit Fenster verbinden frame.add(applet); // Wir wollen das Fenster auch schließen können. frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e){ System.exit(0); } }); applet.init(); applet.start(); frame.setVisible(true); // Fenster sichtbar machen. } // Eine eigene Funktion, die das Ergebnis in einem Fenster anzeigt. public void showResult() { // Erst mal die Knöpfe im Hauptfenster deaktivieren. zahl1.setEnabled(false); zahl2.setEnabled(false); addieren.setEnabled(false); // Achtung: Das Umwandeln von String nach int kann schiefgehen. Wir fangen dies // hier mit einer Exception-Behandlung ab String result = ""; try { result = new String("Ergebnis: " + ( Integer.valueOf(zahl1.getText()).intValue() + Integer.valueOf(zahl2.getText()).intValue()) ); } catch(Exception e) { result = new String("Fehler: " + e.toString()); } final Frame frame = new Frame("Ergebnis"); frame.setSize(600,100); frame.setFont(font); Button ergebnis = new Button(result); frame.add(ergebnis); // Bei Klick auf Button, zurück zum Hauptfenster. ergebnis.addMouseListener(new MouseAdapter(){ public void mouseClicked(MouseEvent e){ frame.dispose(); // Fenster schließen // Die Knöpfe im GUI wieder aktivieren. zahl1.setEnabled(true); zahl2.setEnabled(true); addieren.setEnabled(true); }}); // Bei Klick auf Schließen, zurück zum Hauptfenster. frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e){ frame.dispose(); // Fenster schließen // Die Knöpfe im GUI wieder aktivieren. zahl1.setEnabled(true); zahl2.setEnabled(true); addieren.setEnabled(true); } }); frame.setVisible(true); } }