Um die Platzierung dynamisch zu gestalten, wird als LayoutManager (Abschnitt 8.8) das java.awt.BorderLayout verwendet.
Abbildung 8.1: Einfache Applikation mit Swing-Komponenten
 |
package de.dpunkt.swing.simpleapp;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class SimpleApp extends JFrame {
/**
* Konstruktor
*/
public SimpleApp() {
// Der Titel des Fensters soll der
// Name der Klasse sein
super(SimpleApp.class.getName());
// Layout-Manager setzen
getContentPane().setLayout(new BorderLayout());
// Ein Textfeld oben an den Rand setzen
getContentPane().add(new JTextField("Texteingabe"),
BorderLayout.NORTH);
// Button anlegen
JButton button = new JButton("Klick mich!");
// Der Button soll einen Dialog starten
// Hier wird eine anonyme, innere Klasse für das
// Event-Handling benutzt.
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog (
(JButton) e.getSource(), "Danke.");
}
});
// Den Button in der Mitte platzieren
getContentPane().add(button, BorderLayout.CENTER);
// Größe setzen (oder pack() aufrufen)
setSize(200, 100);
// Wenn jemand das Fenster schließt, soll
// die Applikation beendet werden
// (System.exit (0) wird aufgerufen)
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Fenster sichtbar machen
setVisible(true);
}
/**
* Start-Methode, Aufruf über
* java de.dpunkt.swing.simpleapp.SimpleApp
*/
public static void main(String[] argv) {
new SimpleApp();
}
}