// Aufgabe: Ähnlich wie in formulare.html in HTML
// soll hier ein Fenster geöffnet werden, und
// ein einfaches Texteingabefeld
// ein mehrzeiliges Zexteingabefeld
// Ausklapp-Menü
// checkboxen (unabhängig)
// Radio-Boxen (löschen sich gegenseitig aus)
// eingefügt werden.
// Das notwendige: Libraries
import java.awt.*;
import java.awt.event.*;
public class Formulare extends Frame {
public static void main(String[] args) {
new Formulare();
}
public Formulare() {
// Fenster soll mit "Schließen" Knopf geschlossen
// werden können, hier die "kompakte" Version:
addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent e)
{System.exit(0);}});
setSize(800,600);
setVisible(true);
setTitle("Formular-Elemente in JAVA");
// Layout definieren. Das "freie" Layout
// wird so aktiviert:
setLayout(null);
// Großer Font
Font font = new Font("SansSerif",Font.PLAIN,16);
setFont(font);
// Muss final sein (Java8), damit das Auslesen
// weiter unten funktioniert.
final TextField tf = new TextField();
tf.setBounds(100,60,600,20);
add(tf);
final TextArea multi = new TextArea(5,20);
multi.setBounds(100,100,600,100);
add(multi);
final Choice choice = new Choice(); // Ein Aufklapp-Menü
choice.add("Erster Eintrag");
choice.add("Zweiter Eintrag");
choice.add("Dritter Eintrag");
choice.setBounds(100,250,600,50);
add(choice);
final Checkbox c1 = new Checkbox("Checkbox Nummer 1");
c1.setBounds(100,350,200,20);
final Checkbox c2 = new Checkbox("Checkbox Nummer 2");
c2.setBounds(350,350,200,20);
add(c1);
add(c2);
// Erst mit iner CheckboxGroup wird aus normalen
// Checkboxen eine "Radiobox"
final CheckboxGroup radio = new CheckboxGroup();
final Checkbox r1 = new Checkbox("Radio Nummer 1",radio,true);
r1.setBounds(100,400,200,20);
final Checkbox r2 = new Checkbox("Radio Nummer 2",radio,true);
r2.setBounds(350,400,200,20);
add(r1);
add(r2);
// TODO: Zugriff auf die Elemente, Auswertung,
// Eventlistener für die verschiedenen Zugriffsarten
final Button b = new Button("Button");
// Hier soll die Schrift mal etwas größer sein
b.setFont(new Font("SansSerif",Font.BOLD,24));
b.setBounds(100,450,600,50);
add(b);
// Bei Klick auf den Button sollen
// ALLE Formularfelder gelesen werden.
MouseListener ml = new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
System.out.println("Klick im Button");
// Damit das Auslesen des Inhalts
// an DIESER Stelle funktioniert
// muss tf oben als FINAL deklariert sein.
System.out.println("Im Textfeld steht: "
+ tf.getText());
System.out.println("Im Mehrfach-Textfeld steht: "
+ multi.getText());
System.out.println("Im Popup-Menü steht: "
+ choice.getSelectedItem());
System.out.println("In Checkbox 1 steht: "
+ c1.getState());
System.out.println("In Checkbox 2 steht: "
+ c2.getState());
System.out.println("In der Radiobox ist das Feld: "
+ radio.
getSelectedCheckbox().
getLabel()
+ " ausgewählt.");
}
};
b.addMouseListener(ml);
// Exemplarisch: Wir werten die Eingabetaste
// im ersten Textfeld aus.
ActionListener al = new ActionListener() {
public void actionPerformed(ActionEvent ev) {
System.out.println("Im Textfeld steht jetzt: "
+ tf.getText());
}
};
tf.addActionListener(al);
}
}