Entwicklung von Benutzeroberflächen (C# und Java im Vergleich)

Aktualisiert: November 2007

Sie können die umfangreiche Palette von .NET Framework Windows Forms-Komponenten in C# für die Programmierung von clientseitigen Formularanwendungen verwenden.

Java

Die meisten Java-Anwendungen verwenden für die Formularprogrammierung AWT (Abstract Windowing Toolkit) oder Swing, welches sich die AWT-Infrastruktur samt dem AWT-Ereignismodell zu Nutze macht. AWT stellt alle grundlegenden GUI-Fähigkeiten und -Klassen bereit.

Java-Beispiel

In der Regel wird ein Frame – ein Fenster mit einem Titel und einem Rahmen – für das Hinzufügen der Komponenten verwendet.

JFrame aframe = new JFrame();

Die Component-Klasse, ein Objekt mit grafischer Darstellung, wird normalerweise erweitert. Die geerbten Methoden werden verwendet oder meistens überschrieben, so wie die paint-Methode einer Shape-Komponente im gezeigten Code.

    import java.awt.*;
    import javax.swing.*;
    
    class aShape extends JComponent {
    public void paint(Graphics g) {
    Graphics2D g2d = (Graphics2D)g;
    
    // Draw the shape.
    }
    
    public static void main(String[] args) {
    JFrame aframe = new JFrame();
    frame.getContentPane().add(new aShape ());
    int frameWidth = 300;
    int frameHeight = 300;
    frame.setSize(frameWidth, frameHeight);
    frame.setVisible(true);
    }
}

Zur Behandlung von Ereignissen können Sie sich für die Überwachung eines Aktionsereignisses für eine Komponente registrieren. Wenn beispielsweise auf eine Schaltfläche geklickt und diese wieder losgelassen wird, sendet AWT eine Instanz von ActionEvent an diese Schaltfläche. Dazu wird processEvent auf der Schaltfläche aufgerufen. Die processEvent-Methode der Schaltfläche empfängt alle Ereignisse für die Schaltfläche. Die Methode übergibt dabei ein Aktionsereignis durch Aufrufen ihrer eigenen processActionEvent-Methode. Die letztere Methode übergibt das Aktionsereignis an alle Aktionslistener, die für die Überwachung von Aktionsereignissen registriert sind, die diese Schaltfläche generiert.

C#

In C# steht mit dem System.Windows.Forms-Namespace und den Klassen von .NET Framework eine umfassende Palette von Komponenten für die Entwicklung von Windows Forms bereit. Im folgenden Code werden z. B. Label, Button und MenuStrip verwendet.

C#-Beispiel

Nehmen Sie eine Ableitung von der Form-Klasse einfach wie folgt vor:

public partial class Form1 : System.Windows.Forms.Form

, und fügen Sie Ihre Komponenten hinzu:

this.button1 = new System.Windows.Forms.Button();
this.Controls.Add(this.button1);

Im folgenden Code wird veranschaulicht, wie einem Formular eine Bezeichnung, eine Schaltfläche und ein Menü hinzugefügt werden.

namespace WindowsFormApp
{
    public partial class Form1 : System.Windows.Forms.Form
    {
        private System.ComponentModel.Container components = null;

        private System.Windows.Forms.Label label1;
        private System.Windows.Forms.Button button1;
        private System.Windows.Forms.MenuStrip menu1;

        public Form1()
        {
            InitializeComponent();
        }

        private void InitializeComponent()
        {
            this.components = new System.ComponentModel.Container();

            this.label1 = new System.Windows.Forms.Label();
            this.Controls.Add(this.label1);

            this.button1 = new System.Windows.Forms.Button();
            this.Controls.Add(this.button1);

            this.menu1 = new System.Windows.Forms.MenuStrip();
            this.Controls.Add(this.menu1);
        }

        static void Main() 
        {
            System.Windows.Forms.Application.Run(new Form1());
        }
    }
}

Wie in Java können Sie auch in C# die Überwachung eines Ereignisses für eine Komponente registrieren lassen. Wenn beispielsweise auf eine Schaltfläche geklickt und diese wieder losgelassen wird, sendet die Laufzeit ein Click-Ereignis an alle Listener, die für die Überwachung des Click-Ereignisses dieser Schaltfläche registriert sind.

private void button1_Click(object sender, System.EventArgs e)
{
}

Mithilfe des folgenden Codes können Sie button1_Click für die Behandlung des Click-Ereignisses einer Instanz von Button mit dem Namen button1 registrieren.

// this code can go in InitializeComponent()
button1.Click += button1_Click;

Weitere Informationen finden Sie unter Erstellen von ASP.NET-Webanwendungen (Visual C#).

Weitere Informationen zu den Forms-Klassen finden Sie unter Windows Forms-Steuerelemente nach Funktion und System.Windows.Forms.

Siehe auch

Konzepte

C#-Programmierhandbuch

Entwerfen einer Benutzeroberfläche (Visual C#)

Weitere Ressourcen

C# für Java-Entwickler