Swing-Komponenten
Die Komponenten, die vom Paket javax.swing zur Verfügung gestellt werden, heißen Swing-Komponenten und sind Bestandteile graphischer Benutzeroberflächen (Graphical User Interfaces). Deren Typen (AbstractButton, Box, JComboBox, JFileChooser, JInternalFrame, JLabel, JLayer, JLayeredPane, JList, JMenuBar, JPanel, JPopupMenu, JRootPane, JScrollBar, JScrollPane, JSlider, JTable, JTextComponent und einige andere) sind von der Klasse JComponent abgeleitet. JButton, JMenuItem und JToggleButton sind Subklassen der Klasse AbstractButton. Die Klassen JCheckBoxMenuItem, JMenu und JRadioButtonMenuItem sind abgeleitet von JMenuItem. Die Klassen JTextArea und JTextField sind abgeleitet von JTextComponent.
Die Benutzeroberfläche eines Programms ist das Fenster, das beim Programmstart geöffnet wird. Ein solches Fenster kann mit einem Frame-Objekt vom Typ JFrame realisiert werden. Der Hauptbestandteil eines solchen Objekts hat die Bezeichnung rootpane und ist vom Typ JRootPane. Zur rootpane gehören (optional) die Menüzeile menuBar vom Typ JMenuBar, in jedem Fall aber der Container contentPane, die layeredPane vom Typ JLayeredPane und die glassPane vom Typ Component.
Die der rootpane zugeordnete Teilfläche im nachstehend abgebildeten Fenster (→ Javaprojekt LayoutPerformer) ist blau umrahmt, die zu menuBar gehörende ist grün, die zu contentPane gehörende Teilfläche ist orange umrahmt. Die unsichtbare glassPane überlappt die gesamte rootpane und dient dazu, ggf. Mausereignisse abzufangen. Die layeredPane hat die Aufgabe, sich um die korrekte Darstellung dieser möglicherweise überlappenden Komponenten in Verbindung mit ggf. aufpoppenden Dialogfenstern, Fehlermeldungen, usw. zu kümmern.
Alle für das Programm benötigten Komponenten wie Buttons, Labels, Panels, u.s.w. werden dem Container contentPane mit der Methode add hinzugefügt. Ein Beispiel:
JFrame frame = new JFrame();
JButton button = new JButton();
frame.add(button);
//
stellvertretend für:
// frame.getContentPane().add(button);
Die mittels der Methode setSize festzulegende Größe des Frame-Objekts (im obigen Bild gekennzeichnet durch den roten Gesamtrahmen) beinhaltet auch die Breite der Fensterrahmen und die Höhe der Titelzeile! Sowohl die Dimensionen als auch das Aussehen von Rahmen und Titelzeile werden hierbei von den Einstellungen des Betriebssystems bestimmt, nicht von Definitionen im Programm.
Menüs.
Wenn ein JMenu-Objekt in der Menüzeile angeklickt wird, poppt ein Fenster auf,
in dem Einträge des jeweiligen Untermenüs angezeigt werden. Diese Einträge werden mit JMenuItem-Objekten
realisiert.
Panels.
Ein Panel vom Typ JPanel kann beispielsweise zur Gruppierung von Komponenten
oder als Zeichenfläche zur Präsentation geometrischer Objekte verwendet werden
(→Javaprojekte FilledRectangle,
MysteriousShapes).
Labels.
Ein Label vom Typ JLabel dient dazu, kurze Texte oder Bilder zu zeigen.
Buttons.
Ein Button vom Typ JButton kann auf Mausklicks reagieren, sofern ein
ActionListener implementiert und mittels der Methode actionPerformed
festgelegt wurde, was nach einem Mausklick geschehen soll
(→ Javaprojekt ColoredButtons).
Scrollflächen.
Eine Scrollfläche vom Typ JScrollPane ist eine Fläche mit Scrollbalken.
Textflächen.
Eine Textfläche vom Typ JTextArea ist eine Fläche,
die einen Text beinhalten kann. Eine Textfläche kann in eine Scrollfläche integriert werden
(→ Javaprojekt TextAnalysis):
area_text = new JTextArea();
pane_text = new
JScrollPane(area_text);
Textfelder.
Ein Textfeld vom Typ JTextField
erlaubt die Eingabe eines einzeiligen Textes.
Komboboxen.
Eine Kombobox vom Typ JComboBox kombiniert ein Textfeld mit einer Drop-Down-Liste. Per
Mausklick wird ein Eintrag dieser Liste ausgewählt und danach im Textfeld angezeigt
(→ Javaprojekt SortingAlgorithms).
Schieberegler.
Mit einem Schieberegler vom Typ
JSlider kann ein integer-Wert innerhalb eines festgelegten Intervalls visuell ausgewählt werden.