Programmieren

Grafische Programmoberfläche

 aufwärts

Am Beispiel eines Programms, das eine DNA-Sequenz in ein ent­sprechendes Protein übersetzt, wird im Folgenden die Erstellung einer grafischen Programm­oberfläche gezeigt.

Das folgende Bild 1 zeigt die benötigten Pakete und Dateien.

Bild 1: Package-Explorer der Entwicklungsumgebung Eclipse
Bild 1: Package-Explorer der Entwicklungsumgebung Eclipse

In der Klasse Aufg11 wird nur die Programm­oberfläche erzeugt und auf dem Bildschirm dargestellt.

 

package aufg11;
import inout.*;

public class Aufg11
{
    public static void main(String[] args)
    {
        OutWindow w=new MeineAnwendung();
        w.setVisible(true);
    }
}

 

Die Klasse MeineAnwendung stellt die Programm­oberfläche dar. Sie basiert auf einer Klasse OutWindow, die im Paket inout enthalten ist. Im Konstruktor werden mehrere Steuer­elemente wie Text­eingabe­felder (TextField), Schalt­flächen (Button) und Text­ausgabe­bereiche (Label) erzeugt und zur Programm­oberfläche hinzugefügt.

Die Reaktion auf Aktionen des Benutzers ist in der Funktion action festgelegt. Hier wird bei Betätigung der Schaltfläche btn1 der Text, der im Text­eingabe­feld txt1 steht, übersetzt und im Text­ausgabe­bereich lbl1 ausgegeben. Bei Betätigung der Schaltfläche btn2 wird der Text im Text­eingabe­feld txt1 und im Text­ausgabe­bereich lbl1 gelöscht.

 

package aufg11;
import java.awt.*;
import inout.*;

public class MeineAnwendung extends OutWindow
{
    // Steuerelemente deklarieren
    private TextField txt1;
    private Button btn1, btn2;
    private Label lbl1;

    // Konstruktor
    public MeineAnwendung() 
    {
        // Größe des Fensters festlegen
        setSize(600, 300);
        // Steuerelemente erzeugen und hinzufügen
        txt1=new TextField("ATGCAATGG", 30);
        add(txt1);
        btn1=new Button("Übersetzen");
        add(btn1);
        btn2=new Button("Eingabe löschen");
        add(btn2);
        lbl1=new Label("Hier erscheint die Ausgabe");
        add(lbl1);   
    }

    // wird automatisch aufgerufen, wenn eine
    // Schaltfläche betätigt wird
    public boolean action(Event e, Object x)
    {
        String d, p;
        if (e.target==btn1) // wenn btn1 geklickt wurde
        {
            d=txt1.getText();
            p=DnaTranslator.translate(d);
            lbl1.setText(p);
        }
        if (e.target==btn2) // wenn btn2 geklickt wurde
        {
            txt1.setText("");
            lbl1.setText("");
        }
        txt1.requestFocus();
        return true;
    }
}

 

Die Klasse DnaTranslator ist hier nur als Platzhalter implementiert. Die eingegebene DNA-Sequenz wird statt in ein Protein nur in Klein­buchstaben übersetzt.

 

package aufg11;

public class DnaTranslator
{
    // nur Platzhalter für die tatsächliche Funktion
    public static String translate(String d)
    {
        return d.toLowerCase();
    }
}

Die Klasse OutWindow kann auch direkt als Klasse in das Paket aufg11 eingefügt werden, dann wird das Paket inout nicht benötigt.

import java.awt.*;

public class OutWindow extends Frame
{
    public OutWindow()
    {
        setSize(200, 200);
        setLayout(new FlowLayout(FlowLayout.LEFT));
    }

    public boolean handleEvent(Event e)
    {
        if (e.id==Event.WINDOW_DESTROY)
            System.exit(0);
        return super.handleEvent(e);
    }
}

 

Weiter mit:   up

 

homeH.W. Lang   Hochschule Flensburg   lang@hs-flensburg.de   Impressum   Datenschutz   ©  
Valid HTML 4.01 Transitional