Java Tutorium | |||||||||||||||||
|
|
[Swing I]
Erste Schritte in SwingSwing ist eine Klassenbibliothek die Java-Programmierern grafische Interaktionselemente zur Verfügung stellt. Das sind Fenster, Buttons, Auswahllisten, Dialogboxen, Menüs um nur einige zu nennen. Fenster
Die grundlegendste Klasse der Swing-Bibliothek ist ein Fenster (JFrame). Ein JFrame ist ein ganz normales Windows-Fenster, ohne Inhalt nur mit den Grundfunktionen: Vergrößern, Minimieren, Schließen.
import javax.swing.*;
class EinFenster {
public static void main(String[] args) {
// JFrame-Objekt erschaffen
JFrame fenster = new JFrame();
// Fenster sichtbar machen
fenster.setVisible(true);
}
}
import javax.swing.*;
class EinFensterMitTitel {
public static void main(String[] args) {
// JFrame-Objekt erschaffen und mit Titel versehen
JFrame fenster = new JFrame("Ein Fenster");
// Fenster sichtbar machen
fenster.setVisible(true);
}
}Buttons
Buttons sind Interaktionselemente, die auf Knopfdruck eine Reaktion auslösen (sobald eine Funktion hinterlegt ist).
import javax.swing.*;
class EinFensterMitKnopf {
public static void main(String[] args) {
// JFrame-Objekt erschaffen
JFrame fenster = new JFrame();
// JButton-Objekt erschaffen und
// mit dem Text "Ein Knopf versehen"
JButton knopf = new JButton("Ein Knopf");
// "knopf" mit dem Fenster verknüpfen
fenster.getContentPane().add(knopf);
// Elemente (hier nur "knopf") im Fenster anordnen
fenster.pack();
// Fenster sichtbar machen
fenster.setVisible(true);
}
}
PanelPanels sind "Arbeitsoberflächen" auf denen verschiende Elemente mit Layouts angeordnet werden können.
import javax.swing.*;
class PanelBeispiel {
public static void main(String[] args) {
// JFrame-Objekt erschaffen
JFrame fenster = new JFrame();
// JPanel-Objekt erschaffen
JPanel box = new JPanel();
// ein JButton-Objekt mit dem Panel verknüpfen
box.add(new JButton("Drück mich"));
// JPanel-Objekt mit dem Fenster verknüpfen
fenster.getContentPane().add(box);
// Fensters und seine Elemente so zeichnen,
// dass sie optimal dargestellt werden
fenster.pack();
// Fenster sichtbar machen
fenster.setVisible(true);
}
}
LayoutsLayouts werden gebraucht, um mehrere Elemente in einem Fenster anzuordnen. Ein Flowlayout ordnet die Elemente hintereinander an.
import javax.swing.*;
import java.awt.*;
class FlowLayoutBeispiel {
public static void main(String[] args) {
// JFrame-Objekt erschaffen und mit Titel versehen
JFrame fenster = new JFrame("Ein Fenster");
// JPanel-Objekt erschaffen
JPanel box = new JPanel();
// Layout des JPanels auf Fliesstext setzen
box.setLayout(new FlowLayout());
// JButton-Objekte mit dem Panel verknüpfen
box.add(new JButton("drück mich"));
box.add(new JButton("mich auch"));
box.add(new JButton("und mich"));
// JPanel-Objekt mit dem Fenster verknüpfen
fenster.getContentPane().add(box);
// Fensters und seine Elemente so zeichnen,
// dass sie optimal dargestellt werden
fenster.pack();
// Fenster sichtbar machen
fenster.setVisible(true);
}
}
![]() ![]()
Durch Angabe einer Konstanten im Konstruktor des FlowLayouts kann man die Ausrichtung der Elemente bestimmen: Ein BorderLayout ordnet Elemente nach den Himmelsrichtungen an
import javax.swing.*;
import java.awt.*;
class BorderLayoutBeispiel {
public static void main(String[] args) {
// JFrame-Objekt erschaffen und mit Titel versehen
JFrame fenster = new JFrame("Ein Fenster");
// JPanel-Objekt erschaffen
JPanel box = new JPanel();
// Layout des JPanels auf BorderLayout setzen
box.setLayout(new BorderLayout());
// JButton-Objekte für die Himmelsrichtungen
JButton nord = new JButton("Nord");
JButton sued = new JButton("Süd");
JButton ost = new JButton("Ost");
JButton west = new JButton("West");
JButton mitte = new JButton("Mitte");
// JButtons mit JPanel verknüpfen
box.add(nord,BorderLayout.NORTH);
box.add(sued,BorderLayout.SOUTH);
box.add(ost,BorderLayout.WEST);
box.add(west,BorderLayout.EAST);
box.add(mitte,BorderLayout.CENTER);
// JPanel-Objekt mit dem Fenster verknüpfen
fenster.getContentPane().add(box);
// Fensters und seine Elemente so zeichnen,
// dass sie optimal dargestellt werden
fenster.pack();
// Fenster sichtbar machen
fenster.setVisible(true);
}
}
Ein GridLayout ordnet die Elemente in einer Tabellenstruktur an
import javax.swing.*;
import java.awt.*;
class GridLayoutBeispiel {
public static void main(String[] args) {
// Beschriftung für die Buttons
String buttonText = "";
// JFrame-Objekt erschaffen und mit Titel versehen
JFrame fenster = new JFrame("Ein Fenster");
// JPanel-Objekt erschaffen
JPanel box = new JPanel();
// Layout des JPanels auf Tabellenstruktur setzen
box.setLayout(new GridLayout(5,2));
// JButtons mit dem JPanel verknüpfen
for (int zeile=1; zeile>6; zeile++) {
for (int spalte=1; spalte>3; spalte++) {
buttonText = "Zeile "+zeile+", Spalte "+spalte;
box.add(new JButton(buttonText));
}
}
// JPanel-Objekt mit dem Fenster verknüpfen
fenster.getContentPane().add(box);
// Fensters und seine Elemente so zeichnen,
// dass sie optimal dargestellt werden
fenster.pack();
// Fenster sichtbar machen
fenster.setVisible(true);
}
}Übungsaufgaben
|
externe Verweise |
|||||||||||||||
| nach oben | Über mich | Java | HTML | Diverses | Links | ||||||||||||||||