Lernpfad:Grafische Benutzeroberflächen in Java/3: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Arbeitsauftrag
Ngb (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Ngb (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| Zeile 5: | Zeile 5: | ||
Zur besseren Übersicht macht es Sinn, die Erstellung der Komponenten in eine separate Methode auszulagern: | Zur besseren Übersicht macht es Sinn, die Erstellung der Komponenten in eine separate Methode auszulagern: | ||
<syntaxhighlight lang="java" line="1" highlight="8-9,14,26-32"> | <syntaxhighlight lang="java" line="1" highlight="2-3,8-9,14,26-32"> | ||
import javax.swing.JFrame; | import javax.swing.JFrame; | ||
import javax.swing.JLabel; | import javax.swing.JLabel; | ||
| Zeile 40: | Zeile 40: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
In der Methode <code>addComponents</code> werden zunächst ein <code>JButton</code> und ein <code>JLabel</code> erstellt. Beide Komponenten werden dann dem <code>JFrame</code> mit <code>add()</code> hinzugefügt. Allerdings gibt es noch ein Problem: Anstatt zwei Komponenten erhalten wir nur den Text <code>Hallo, Welt!</code>. | |||
[[Bild:Java GUI JFrame 2.png|400px|center|JFrame mit einem JLabel.]] | |||
{{Aufgabe:Start}} | |||
Welchen Grund könnte es haben, dass der <code>JButton</code> nicht im Fenster zu sehen ist? Stelle Vermutungen an und gehe dann zum {{NPfad|4|nächsten Schritt}}. | |||
{{Aufgabe:End}} | |||
Version vom 8. November 2022, 10:17 Uhr
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!.
Welchen Grund könnte es haben, dass der JButton nicht im Fenster zu sehen ist? Stelle Vermutungen an und gehe dann zum GUI Komponenten anordnen.