import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class OflDemo {
public static void main(String args[]) {
//// Deklarationen fuer Komponenten der Oberflaeche:
JFrame frame; // Rahmen der Oberflaeche
JLabel label1, label2; // fester Text
JButton button1, button2, button3; // Buttons
JTextField textfeld1, textfeld2; // Feld zur Textausgabe
JPanel checkboxpanel;
// Listener fuer die Buttons:
// Definiert Aktion, die beim Druecken der Buttons ausgefuehrt werden soll
class ButtonListener implements ActionListener {
JTextField tf; // Textfeld, in das der ButtonListener eine Ausgabe schreiben soll
// Konstruktor zur Initialisierung des Attributs tf
ButtonListener(JTextField tf) {
this.tf = tf;
}
// Operation, die beim Druecken des Buttons ausgefuehrt werden soll:
public void actionPerformed(ActionEvent e) {
// Ermittlung der Beschriftung des gedrueckten Buttons:
String ButtonText = new String(((JButton)e.getSource()).getText());
// je nach Beschriftung Setzen oder Loeschen des Textfelds:
if (ButtonText.equals("Textfeld setzen") && checkbox1.isSelected()) // HIER IST MEIN PROBLEM
tf.setText("HELLO WORLD");
if (ButtonText.equals("Textfeld loeschen"))
tf.setText("");
if (ButtonText.equals("Quit"))
System.exit(0);
}
}
//// Anweisungen zur Erzeugung der Oberflaeche:
// Frame erzeugen:
frame = new JFrame("Ein erster Frame");
// Frame-Layout setzen:
frame.getContentPane().setLayout(new GridLayout(9,1));
// Label1 mit Beschriftung und Zeichentyp erzeugen ...
label1 = new JLabel("Erstes Textfeld:");
label1.setFont(new Font("Arial",Font.BOLD,14));
label1.setForeground(Color.blue);
// ... und zum Frame hinzufuegen:
frame.getContentPane().add(label1);
// Textfeld1 mit Zeichentyp und -farbe erzeugen ...
textfeld1 = new JTextField();
textfeld1.setFont(new Font("Arial",Font.BOLD,24));
textfeld1.setForeground(Color.red);
// ... und zum Frame hinzufuegen:
frame.getContentPane().add(textfeld1);
// Label2 mit Beschriftung und Zeichentyp erzeugen ...
label2 = new JLabel("Zweites Textfeld:");
label2.setFont(new Font("Arial",Font.BOLD,14));
label2.setForeground(Color.blue);
// ... und zum Frame hinzufuegen:
frame.getContentPane().add(label2);
// Textfeld2 mit Zeichentyp und -farbe erzeugen ...
textfeld2 = new JTextField();
textfeld2.setFont(new Font("Arial",Font.BOLD,24));
textfeld2.setForeground(Color.red);
// ... und zum Frame hinzufuegen:
frame.getContentPane().add(textfeld2);
//Ein Panel für die Checkboxen
checkboxpanel = new JPanel();
checkboxpanel.setBorder(BorderFactory.createEtchedBorder());
JCheckBox checkbox1 = new JCheckBox("Textfeld 1");
JCheckBox checkbox2 = new JCheckBox("Textfeld 2");
checkboxpanel.add(checkbox1);
checkboxpanel.add(checkbox2);
frame.getContentPane().add(checkboxpanel);
// Drei beschriftete Buttons erzeugen ...
button1 = new JButton("Textfeld setzen");
button1.setFont(new Font("Arial",Font.BOLD,24));
button1.setForeground(Color.black);
button2 = new JButton("Textfeld loeschen");
button2.setFont(new Font("Arial",Font.BOLD,24));
button2.setForeground(Color.black);
button3 = new JButton("Quit");
button3.setFont(new Font("Arial",Font.BOLD,24));
button3.setForeground(Color.black);
// ... Listener registrieren, der bei Druecken
// des Buttons ausgefuehrt werden soll ...
button1.addActionListener(new ButtonListener(textfeld1));
button2.addActionListener(new ButtonListener(textfeld1));
button1.addActionListener(new ButtonListener(textfeld2));
button2.addActionListener(new ButtonListener(textfeld2));
button3.addActionListener(new ButtonListener(textfeld1));
// ... und zum Frame hinzufuegen:
frame.getContentPane().add(Box.createVerticalStrut(10));
frame.getContentPane().add(button1);
frame.getContentPane().add(button2);
frame.getContentPane().add(button3);
// Frame sichtbar machen:
frame.pack();
frame.setVisible(true);
// Position und Groeße des Frames setzen:
frame.setLocation(100,100);
frame.setSize(300,400);
}
}