// 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 { // hier oben von allen objekten auf die du zugreifen willst eintragen private class name ; // syntax private JCheckBox mwst; // bsp private JTextField text; //bsp 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) {} }