JInternalFrame
Ein JInternalFrame ist vergleichbar mit einem JFrame. Der Unterschied besteht darin, dass es sich um ein internes Fenster handelt, das von einem Hauptfenster abhängig ist. Die Klasse JInternalFrame bietet die folgenden Konstruktoren:
Konstruktor | Kurzbeschreibung |
---|---|
JInternalFrame() | Der Standardkonstruktor erstellt einen JInternalFrame, welcher weder in der Größe veränderbar, schließbar, maximierbar noch minimierbar ist und keinen Titel besitzt. |
JInternalFrame(String title) | Hier wird der Titel übergeben, den der JinternalFrame tragen soll. |
JInternalFrame(String title, boolean resizable) | Über diesen Konstruktor kann angegeben werden, ob das interne Fenster vergrößert oder verkleinert werden kann. |
JInternalFrame(String title, boolean resizable, boolean closable) | Der Kontruktor verfügt über einen weiteren Parameter, über den festgelegt wird, ob der Frame geschlossen werden kann. |
JInternalFrame(String title, boolean resizable, boolean closable, boolean maximizable) | Über diesen Konstruktor kann man zusätzlich die Maximierbarkeit einstellen. |
JInternalFrame(String title, boolean resizable, boolean closable, boolean maximizable, boolean iconifiable) | Über diesen Konstruktor kann man zusätzlich die Minimierbarkeit einstellen. |
Nachfolgend finden Sie einige wichtige Methoden, die im Umgang mit JInternalFrames häufig benötigt werden:
Methode | Kurzbeschreibung |
public void toBack() | Der JInternalFrame wird nach hinten gesetzt. |
public void toFront() | Der Frame wird nach vorne gesetzt. |
public boolean isSelected() | Gibt true zurück, wenn der Frame gerade aktiv ist. |
public void show() | Macht das Fenster sichtbar, falls es das noch nicht ist, und bringt es nach vorne. |
public void hide() | Das Fenster wird versteckt. |
JDesktopPane getDesktopPane() | Gibt den JDesktopPane zurück, auf dem der Frame sich befindet |
Nachfolgend ein einfaches Beispiel, wie man einen JDesktopPane in Verbindung mit mehreren internen Fenstern in Java implementiert:
// Import-Anweisungen import java.awt.Color; import javax.swing.*; public class JDesktopPaneBeispiel { // main-Methode public static void main(String[] args) { // Erzeugung eines neuen Dialoges JDialog meinJDialog = new JDialog(); meinJDialog.setTitle("JDesktopPane Beispiel"); meinJDialog.setSize(450,300); // JDesktopPane wird erstellt JDesktopPane deskPane = new JDesktopPane(); // Hintergrundfarbe wird auf blau gesetzt deskPane.setBackground(Color.blue); //JInternalFrame wird erstellt JInternalFrame inFrame1 = new JInternalFrame("Dokument 1", true, true, true, true); JInternalFrame inFrame2 = new JInternalFrame("Dokument 2"); //JInternalFrames werden unserem JDesktopPane hinzugefügt deskPane.add(inFrame1); deskPane.add(inFrame2); //Größe der JInternalFrames wird gesetzt inFrame1.setSize(200,200); inFrame2.setSize(200,200); //Position der JInternalFrames wird gesetzt inFrame1.setLocation(0,0); inFrame2.setLocation (200,0); //JInternalFrames werden sichtbar gemacht inFrame1.show(); inFrame2.show(); // JDesktopPane wird dem Dialog hinzugefügt meinJDialog.add(deskPane); // Wir lassen unseren Dialog anzeigen meinJDialog.setVisible(true); } }
Folgendes Bild sollte sich ergeben, wenn der obige Code ausgeführt wird:
Wir erzeugen einen JDesktopPane, den wir blau einfärben. Anschließend erstellen wir zwei JInternalFrames. Für den ersten Frame haben wir den Konstruktor mit den meisten Parametern verwendet. Da wir sämtliche Eigenschaften auf true gesetzt haben, kann das Fenster sowohl in der Größe verändert, minimiert und maximiert, als auch geschlossen werden.
Für die Erstellung des zweiten JInternalFrame haben wir den parameterlosen Standardkonstruktor eingesetzt. Da die genannten Eigenschaften standardmäßig auf false gesetzt sind, kann der Frame lediglich verschoben werden.
Den Fenstern haben wir zur besseren Demonstration eine feste Position zugeteilt, da sie sich sich sonst überlagern würden. Damit sie angezeigt werden, müssen sie explizit über show() oder setVisible(true) sichtbar gemacht werden.