~Java4Beginners~
~Java4Beginners~

JInternalFrame

Um den erstellten Container JDesktopPane mit Leben zu füllen, stellt uns Java die Klasse JInternalFrame zur Verfügung. Grob kann man JInternalFrame mit der Klasse JFrame vergleichen, allerdings benötigt ein Objekt der Klasse JInternalFrame immer einen übergeordneten Container.

Parameter

Den Konstruktoren können verschiedene Parameter übergeben werden, die in nachfolgender Tabelle erklärt werden.
Parameter Beschreibung
title Mit diesem Parameter wird ein String mit dem Fenstertitel angegeben.
resizable Bei diesem Parameter wir ein boolean-Wert erwartet, der angibt, ob das Fenster vergrößert oder verkleinert werden kann (true), oder nicht (false).
closable Mit true kann das Fenster geschlossen werden, mit false nicht. D. h. wir übergeben hier ebenfalls wieder einen boolean-Wert.
maximizable Auch hier wieder die boolean-Werte true (Fenster kann maximiert werden) oder false (Fenster kann nicht maximiert werden).
iconifiable Mit dem boolean-Werte true wird festgelegt, dass das Fenster minimiert werden kann. Mit false ist eine Minimierung nicht möglich.

Konstruktoren

  • JInternalFrame()
  • JInternalFrame(title)
  • JInternalFrame(title, resizable)
  • JInternalFrame(title, resizable, closable)
  • JInternalFrame(title, resizable, closable, maximizable)
  • JInternalFrame(title, resizable, closable, maximizable, iconifiable)

Methoden

JInternalFrame verfügt über eine Vielzahl an Methoden. Wie gewohnt, hier wieder der Verweis auf die API von Oracle und eine kleine Auswahl von hilfreicher Methoden.
Methode Beschreibung
setSize() Gibt die Größe des Fensters an
setDefaultCloseOperation(Konstante) Die Konstante EXIT_ON_CLOSE ist hier nicht möglich. Ansonsten die restlichen Konstanten, die wir von der Klasse JFrame schon kennen.
setLocation(x, y) gibt die Position des linken, oberen Fenstereckes innerhalb des Containers an.
show() Macht das JInternalFrame-Objekt sichtbar.
getAllFrames() Liefert alle vorhanden JInternalFrame zurück, die auf dem JDesktopPane platziert sind. Rückgabetyp ist ein Array vom Objekttyp JInternalFrame.
toFront() Setzt den JInternalFrame nach vorne.
toBack() Setzt den JInternalFrame nach hinten.
isSelected() Wenn das JInternalFrame-Objekt aktiv ist, ist der Rückgabewert true, ansonsten false.
hide() Die Gegenmethode zu show(). Das Fenster wird ausgeblendet, versteckt.
addInternalFrameListener(InternalFrameListener l) Event-Listener für Aktionen mit JInternalFrame-Objekten
getTitle() Liefert den Fenstertitel als String zurück.
setJMenuBar(JMenuBarname) Fügt dem JInternalFrame eine Menüleiste hinzu.
setTitle(titel) Mit dieser Methode können wir den Fenstertitel als String übergeben.
Die folgenden selbsterklärenden Methoden liefern einen boolean-Wert zurück.
  • isClosable()
  • isClosed()
  • isIconifiable()
  • isMaximum()
  • isMaximizable()
  • isResizable()
Die nun jetzt noch folgenden, ebenfalls selbsterklärenden Methoden, benötigen einen boolean-Wert bo als Parameter.
  • setClosable(bo)
  • setClosed(bo)
  • setIconifiable(bo)
  • setMaximum(bo)
  • setMaximizable(bo)
  • setResizable(bo)
  • setSelected(bo)

Beispielprogramm


import java.awt.Color;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import static javax.swing.JFrame.EXIT_ON_CLOSE;
import javax.swing.JInternalFrame;

/**
 * Beispielprogramm JInternalFrame
 * @author Markus Badzura
 */
    public class ContainerJInternalFrame extends JFrame
{
    public void ContainerJInternalFrame()
    {
        setTitle("Beispielprogramm JInternalFrame");
        setSize(615,538);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLayout(null);
        setLocationRelativeTo(null);
        JDesktopPane dpane = new JDesktopPane();
        dpane.setBackground(Color.green);
        dpane.setSize(600,500);
        // Erzeugen der JInternalFrame-Objekte
        JInternalFrame f1 = new JInternalFrame();
        JInternalFrame f2 = new JInternalFrame("Fenster 2");
        JInternalFrame f3 = new JInternalFrame("Fenster 3", true);
        JInternalFrame f4 = new JInternalFrame("Fenster 4", false, true);
        JInternalFrame f5 = new JInternalFrame("Fenster 5", true, false, false);
        JInternalFrame f6 = new JInternalFrame("Fenster 6", false, true, false, true);
        f1.setSize(250,100);// Größe festlegen
        f2.setSize(250,100);
        f3.setSize(250,100);
        f4.setSize(250,100);
        f5.setSize(250,100);
        f6.setSize(250,100);
        f1.setLocation(50,50);//Positionen festlegen
        f2.setLocation(100,100);
        f3.setLocation(150,150);
        f4.setLocation(200,200);
        f5.setLocation(250,250);
        f6.setLocation(300,300);
        f1.setDefaultCloseOperation(DISPOSE_ON_CLOSE); // Schließverhalten
        f2.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        f3.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        f4.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        f5.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        f6.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        f1.show();//JInternalFrame's sichtbar machen
        f2.show();
        f3.show();
        f4.show();
        f5.show();
        f6.show();
        dpane.add(f1);
        dpane.add(f2);
        dpane.add(f3);
        dpane.add(f4);
        dpane.add(f5);
        dpane.add(f6);
        dpane.setSelectedFrame(f3);
        f3.toFront();
        f4.toBack();
        f1.hide();
        add(dpane);
        setVisible(true);
    }
    
    public static void main(String[] args) 
    {
        ContainerJInternalFrame inf = new ContainerJInternalFrame();
        inf.ContainerJInternalFrame();
    }
}
Wie im Quelltext zu sehen ist, sind manigfaltige Einstellungen bei den einzelen JInternalFrame-Objekte möglich. So sieht das Fenster durch den Quelltext aus.

nach oben Java4Beginners -- Seitenversion 1.0 -- Stand: 2017-05-18