// Dies ist ein Applet, muss also aus einer HTML-Seite im Browser
// gestartet werden.
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.awt.print.*;
import java.lang.Integer;
public class MultiGUI extends Applet implements MouseListener,WindowListener,ActionListener,ItemListener,MouseMotionListener {
public static void main(String[] args) {
Frame f = new Frame("MultiGUI");
f.setSize(800,600); // Größe ändern (breite, höhe)
f.setVisible(true); // Fenster sichtbar machen
Applet a = new MultiGUI(); // Applet-Context holen
f.add(a); // Applet-Eigenschaften zum Fenster hinzufügen
// "Schließen"-Knopf:
// Verweis auf die in dieser Klasse definierten WindowAdapter-Mehoden
f.addWindowListener((MultiGUI)a);
// Maus-Events,
// Verweis auf die in dieser Klasse definierten MouseAdapter-Mehoden
f.addMouseListener((MultiGUI)a);
a.init(); // paint(g); wird hier nicht gebraucht.
a.start();
f.setVisible(true); // Fenster und Buttons sichtbar machen
} // Ende Applikation, ab hier Applet-Stuff.
// paint() entspricht dem "main" bei Applikationen, wird aber
// _jedesmal_ beim Zeichnen/Refresh des Applet aufgerufen.
// Graphics g wird vom Browser geliefert und hat die Größe des
// width=... und height=... Kontextes im APPLET-Tag in der
// HTML-Datei.
public void paint(Graphics g) { } // Hier ausnahmsweise leer.
// init() wird nur einmalig zu Beginn aufgerufen
public void init() {
// Layout in 2 Zeilen a 4 Spalten
// setLayout(new GridLayout(2, 4));
setLayout(null); // freies Layout mit setBounds()
Font meinfont = new Font("SansSerif",Font.BOLD,16);
//1. Zeile
Label label = new Label("Anzahl der Benutzer des Programms:");
label.setFont(meinfont);
label.setBounds(10,10,400,30);
add(label);
TextField textfield = new TextField("Bitte eintragen",20);
textfield.setFont(meinfont);
textfield.setBounds(430,10,280,30); // s.o.
add(textfield);
textfield.addActionListener(this);
//2. Zeile
Label label2 = new Label("Preis Fremdlizenzierung je Benutzer:");
label2.setFont(meinfont);
label2.setBounds(10,50,400,30);
add(label2);
TextField textfield2 = new TextField("Bitte eintragen",20);
textfield2.setFont(meinfont);
textfield2.setBounds(430,50,280,30); // s.o.
add(textfield2);
textfield2.addActionListener(this);
//3. Zeile
Label label3 = new Label("Geschätzte Anzahl an Programmierstunden:");
label3.setFont(meinfont);
label3.setBounds(10,90,400,30);
add(label3);
TextField textfield3 = new TextField("Bitte eintragen",20);
textfield3.setFont(meinfont);
textfield3.setBounds(430,90,280,30); // s.o.
add(textfield3);
textfield3.addActionListener(this);
//4. Zeile
Label label4 = new Label("Preis je Programmierstunde:");
label4.setFont(meinfont);
label4.setBounds(10,130,400,30);
add(label4);
TextField textfield4 = new TextField("Bitte eintragen",20);
textfield4.setFont(meinfont);
textfield4.setBounds(430,130,280,30); // s.o.
add(textfield4);
textfield4.addActionListener(this);
CheckboxGroup radio = new CheckboxGroup();
Checkbox r1 = new Checkbox("Mit MwSt. berechnen",radio,true);
Checkbox r2 = new Checkbox("Ohne MwSt. berechnen",radio,true);
r1.setFont(meinfont);
r2.setFont(meinfont);
r1.setBounds(10,170,200,30);
r2.setBounds(250,170,200,30);
add(r1);
add(r2);
r1.addItemListener(this);
r2.addItemListener(this);
/* double zahl = Double.parseDouble(textfield);
Label label5 = new Label(""+zahl);
label5.setFont(meinfont);
label5.setBounds(10,210,400,30);
add(label5); */
Button button = new Button("Berechnen");
button.setFont(meinfont);
// Der Button soll 10 Punkte vom linken, 10 vom rechten
// Rand entfernt sein, und 80 Pixel breit, 20 Pixel
// hoch.
button.setBounds(10,210,400,30);
add(button);
button.addActionListener(this);
/* Checkbox cb1 = new Checkbox("Checkbox 1");
Checkbox cb2 = new Checkbox("Checkbox 2");
cb1.setFont(meinfont);
cb2.setFont(meinfont);
cb1.setBounds(10,200,200,60);
cb2.setBounds(250,200,200,60);
add(cb1);
add(cb2);
cb1.addItemListener(this);
cb2.addItemListener(this); */
// Mausbewegungs-Listener einschalten.
addMouseMotionListener(this);
} // Ende init()
// ActionListener für "Eingabefeld verändert":
public void actionPerformed(ActionEvent e) {
outputText(e.toString(), 350);
}
public void itemStateChanged(ItemEvent e) {
outputText(e.toString(), 350);
}
public void mouseMoved(MouseEvent e) {
outputText(e.toString(),400);
}
public void mouseDragged(MouseEvent e) {
outputText(e.toString(),400);
}
public void outputText(String text, int hpos) {
Graphics g = getGraphics();
g.clearRect(10,hpos-40,780,80);
g.drawString(text,10,hpos);
}
// Klick auf "Schließen"-Button beendet das Programm
public void windowClosing(WindowEvent e) { System.exit(0); }
// Mausklick ins Fenster beendet das Programm ebenfalls.
public void mouseClicked(MouseEvent e) { }
// Diese Events werden ignoriert.
public void windowOpened(WindowEvent e) { System.out.println("Fenster wurde geöffnet.");}
public void windowClosed(WindowEvent e) { System.out.println("Fenster wurde geschlossen."); }
public void windowIconified(WindowEvent e) { System.out.println("Fenster wurde ikonifiziert."); }
public void windowDeiconified(WindowEvent e)
{
System.out.println("Fenster wurde wiederhergestellt, Inhalt neu zeichnen.");
}
public void windowActivated(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}