Lernpfad:Grafische Benutzeroberflächen in Java/3

Aus Informatik-Box
Zur Navigation springen Zur Suche springen

Java Swing besitzt eine Reihe an Komponenten, aus denen eine GUI zusammengestellt werden kann. Sie beginnen mit einem J und befinden sich im Paket javax.swing.

Zur besseren Übersicht macht es Sinn, die Erstellung der Komponenten in eine separate Methode auszulagern:

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;

public class GUI {
    private JFrame frame;
    
    private JButton jbButton1;
    private JLabel jlText;
    
    public GUI( String pTitle ) {
        frame = new JFrame(pTitle);
        
        addComponents();
        
        // Programm beenden, wenn Fenster geschlossen wird
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // Größe einstellen
        frame.setSize(400, 400);
        // Fenster zentrieren
        frame.setLocationRelativeTo(null);
        // Fenster anzeigen
        frame.setVisible(true);
    }
    
    private void addComponents() {
        jbButton1 = new JButton("Klick mich!");
        jlText = new JLabel("Hallo, Welt!");
        
        frame.add(jbButton1);
        frame.add(jlText);
    }
}

In der Methode addComponents werden zunächst ein JButton und ein JLabel erstellt. Beide Komponenten werden dann dem JFrame mit add() hinzugefügt. Allerdings gibt es noch ein Problem: Anstatt zwei Komponenten erhalten wir nur den Text Hallo, Welt!.

JFrame mit einem JLabel.
Icon Heft.png
Arbeitsauftrag

Welchen Grund könnte es haben, dass der JButton nicht im Fenster zu sehen ist? Stelle Vermutungen an und gehe dann zum nächsten Schritt.