Sicher. Wie die meisten Klassen kann die JFrame-Klasse erweitert werden.
JFrame-Klasse erweitern
Um eine GUI-Applikation zu schreiben, erweitern wir die JFrame-Klasse.
Dann fügen wir GUI-Komponenten hinzu, um die Klasse zu erweitern.
Hier ist ein Programm, dass das tut.
import java.awt.*;
import javax.swing.*;
class MeinFrame extends JFrame
{
JLabel label;
// Konstruktor
MeinFrame( String title )
{
super( title ); // den Konstruktor von JFrame aufrufen
setSize( 150, 100 );
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
setLayout( new FlowLayout() ); // den Layoutmanager setzen
label = new JLabel("Hello Swing!"); // ein JLabel konstruieren
add( label ); // das Label dem JFrame hinzufügen
}
}
public class TestFrame2
{
public static void main ( String[] args )
{
MeinFrame frame = new MeinFrame("Hello"); // ein MeinFrame-Objekt konstruieren
frame.setVisible( true ); // es auffordern sichtbar zu werden
}
}
Die neue Klasse wird MeinFrame genannt und basiert auf
der Klasse JFrame.
Ein Layoutmanager bestimmt, wie ein Container seine Komponenten anordnet.
Der Layoutmanager für diesen Frame wird auf FlowLayout gesetzt,
indem die setLayout() Methode verwendet wird.
(Darüber werden Sie in den nächsten Kapiteln mehr erfahren.)
Der Frame enthält eine GUI-Komponente, ein JLabel,
das die Worte "Hello Swing!" anzeigt.
Das JLabel wird dem Frame mit der add() Methode hinzugefügt.
Die main() Methode in dieser Applikation tut nicht mehr als
ein MeinFrame-Objekt zu konstruieren und es sichtbar zu machen.
(Rückblick:) Wo muss super( title ) im Konstruktor stehen.