21.4 Caesarferschlüssung mit grafischer Oberfläche
21.4.1 Eine GUI zur Cäsar - Verschlüsselung

In diesem Kapitel geht es eigentlich nicht um Verschlüsselung. Vielmehr lernen wir einiges über die Programmierung von grafischen Oberflächen.
 
So solle es aussehen.


 

Die Funktionalität

Download:
Krypt.class

Die GUI benutzt die Fachlasse Krypt, genauer deren Klassenmethode caesar(String original int schluessel).

Wir bauen die GUI, wie wir es schon gewohnt sind als eine Java-swing Klasse auf leiten sie also von JFrame ab und nennen sie VGUI:
 

Download:
VGUI.java
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

public class VGUI extends JFrame {
  // Anfang Variablen
  CaesarButton caesarButton;
  InvCaesarButton invCaesarButton;
  JTextField eingabeFeld, ausgabeFeld, schluesselFeld;
  JPanel centerPanel, ostPanel, nordPanel, suedPanel;
  JLabel label, klarText, geheimText;;
  
  // Ende Variablen

  public VGUI (String title) {
    // Frame-Initialisierung
    super (title);

    addWindowListener(new WindowAdapter() {
      public void windowClosing (WindowEvent evt) {
       System.exit(0);
      }
    });

    setSize(450,250);
    
    Container cp = getContentPane();
    cp.setLayout(new BorderLayout(10,10));
    
    nordPanel = new JPanel();
    nordPanel.setLayout(new GridLayout(2,1));
    cp.add(nordPanel, BorderLayout.NORTH);
    
    centerPanel = new JPanel();
    centerPanel.setLayout(new GridLayout(1,2));
    cp.add(centerPanel, BorderLayout.CENTER);
    
    ostPanel = new JPanel();
    ostPanel.setLayout(new FlowLayout());
    cp.add(ostPanel, BorderLayout.EAST);
    
    suedPanel = new JPanel();
    suedPanel.setLayout(new GridLayout(2,1));
    cp.add(suedPanel, BorderLayout.SOUTH);

    // Anfang Komponenten
    
    klarText = new JLabel("Klartext:   ");
    nordPanel.add(klarText);
    
    eingabeFeld = new JTextField(40);
    nordPanel.add(eingabeFeld);

    caesarButton = new CaesarButton(this);
    centerPanel.add(caesarButton);
    
    invCaesarButton = new InvCaesarButton(this);
    centerPanel.add(invCaesarButton);
    
    label = new JLabel("Schlüssel: ");
    ostPanel.add(label);
    
    schluesselFeld = new JTextField(10);
    ostPanel.add(schluesselFeld);
    
    geheimText = new JLabel("Geheimtext:");
    suedPanel.add(geheimText);

    ausgabeFeld = new JTextField(40);
    suedPanel.add(ausgabeFeld);

    // Ende Komponenten

    setVisible(true);
    setResizable(false);
  }

  public static void main (String[] args) {
    new VGUI("Verschlüsselungen");
  }
}
Erläuterung Dem Grund-Panel mit dem Borderlayout  werden weitere Panels hinzugefügt, die über andere Layouts wie Gridlayout oder Flowlayout verfügen. Die Buttons sind Objekte von Buttons, die wir selber schreiben.
 
zu 21.4.2 Buttons mit Bildern
zur Startseite www.pohlig.de  (C) MPohlig 2003