MezData-Logo

GUI - Graphical User Interface

Einfache Swing-Gui

So sieht sie aus

Der Quellcode

Quellcode [simpleGUI/Oberflaeche.java]
/* @author Oliver Mezger 
 * @version 11.03.10
 */
import java.awt.*;      // Abstract Windowing Toolkit
import javax.swing.*;   // Swing Komponenten fuer Oberflaeche
import java.awt.event.*;// Ereignisse wie Klick auf Button
 
public class Oberflaeche extends JPanel {       // ein JPanel als Traeger der Komponenten
  JTextField dieEingabe1 = new JTextField(10);  // Textfeld zur Eingabe erzeugen mit 10 Zeichen Platz
  JButton derButton = new JButton("Tu was");    // ein Button mit der Beschriftung "Tu was"
  JLabel dasLabel = new JLabel("LiebesLabel");  // ein Label mit der Beschriftung "LiebesLabel"
 
  public static void main(String[] args){           // Startfunktion 
    Oberflaeche dieOberflaeche = new Oberflaeche(); // die Oberflaeche erzeugen
    JFrame derRahmen = new JFrame("Oberflaeche");   // einen Fensterrahmen erzeugen
    derRahmen.getContentPane().add(dieOberflaeche); // das Panel in den Rahmen einbauen
    derRahmen.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); // Programmende wenn Rahmen geschlossen 
    derRahmen.setSize(400,400);                     // Groesse des JFrame setzen
    derRahmen.setVisible(true);                     // das Fenster soll sichtbar sein
  } 
  public Oberflaeche(){                 // Konstruktor der Oberflaeche
    setBackground(Color.yellow);        // der Hintergrund ist gelb
    setLayout(new FlowLayout());        // Komponenten im Panel sollen einfach nacheinander angezeigt werden
    add(dieEingabe1);                   // die Eingabe einbauen
    add(derButton);                     // den Button einbauen
    add(dasLabel);                      // das Label einbauen
    derButton.addMouseListener(new java.awt.event.MouseAdapter() { // Ohr f?r ButtonClick
      public void mousePressed(MouseEvent e) {
        vearbeiteButtonClick();         // bei Click diese Methode aufrufen
      }
    });
  }
  void vearbeiteButtonClick(){
    String s;
    s=dieEingabe1.getText();    // Text einlesen
    dasLabel.setText(s);        // Text ausgeben
  }
}

Benzinrechner mit graphischer Oberfläche

So sieht er aus

Der Quellcode

Quellcode [Benzinrechner/Oberflaeche.java]
/* @author Oliver Mezger 
 * @version 11.03.10
 */
import java.awt.*;      // Abstract Windowing Toolkit
import javax.swing.*;   // Swing Komponenten fuer Oberflaeche
import java.awt.event.*;// Ereignisse wie Klick auf Button
 
public class Oberflaeche extends JPanel {       // ein JPanel als Traeger der Komponenten
  JLabel literLabel = new JLabel("Liter");
  JLabel kmLabel = new JLabel("Kilometer");
  JLabel verbrauchLabel = new JLabel("Verbrauch:");
  JTextField literEingabe = new JTextField(10);
  JTextField kmEingabe = new JTextField(10);
  JButton berechneButton = new JButton("berechne");
 
  public static void main(String[] args){           // Startfunktion 
    Oberflaeche dieOberflaeche = new Oberflaeche(); // die Oberflaeche erzeugen
    JFrame derRahmen = new JFrame("Benzinrechner"); // einen Fensterrahmen erzeugen
    derRahmen.getContentPane().add(dieOberflaeche); // das Panel in den Rahmen einbauen
    derRahmen.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); // Programmende wenn Rahmen geschlossen 
    derRahmen.setSize(400,400);                     // Groesse des JFrame setzen
    derRahmen.setVisible(true);                     // das Fenster soll sichtbar sein
  } 
  public Oberflaeche(){         // Konstruktor der Oberflaeche
    setBackground(Color.yellow);// der Hintergrund ist gelb
    setLayout(null);            // selber machen
    int durchschuss=5,hoehe=30,zeile1=20,spalte1=20,spalte2=90,spalte3=200; // Layoutpositionen
    literLabel.setBounds(spalte1,zeile1,spalte2-spalte1-2,hoehe-durchschuss);
    kmLabel.setBounds(spalte1,zeile1+hoehe,spalte2-spalte1-2,hoehe-durchschuss);
    verbrauchLabel.setBounds(spalte1,zeile1+2*hoehe,250,hoehe-durchschuss);
    literEingabe.setBounds(spalte2,zeile1,spalte3-spalte2-2,hoehe-durchschuss);
    kmEingabe.setBounds(spalte2,zeile1+hoehe,spalte3-spalte2-2,hoehe-durchschuss);
    berechneButton.setBounds(spalte3,zeile1+hoehe,100,hoehe-durchschuss);
    add(literLabel);
    add(kmLabel);
    add(verbrauchLabel);
    add(literEingabe);
    add(kmEingabe);
    add(berechneButton);
    berechneButton.addMouseListener(new java.awt.event.MouseAdapter() { // Ohr f?r ButtonClick
      public void mousePressed(MouseEvent e) {
        berechneButtonClick();      // bei Click diese Methode aufrufen
      }
    });
  }
  void berechneButtonClick(){
    double l,km,v;
    l = Double.parseDouble(literEingabe.getText());
    km= Double.parseDouble(kmEingabe.getText());
    v=l/km*100;
    //verbrauchLabel.setText("Verbrauch: "+v+" l/100km");
    verbrauchLabel.setText(String.format("Verbrauch: %5.2f l/100km",v));
  }
}