Literatur

JScrollPane

Die Klasse javax.swing.JScrollPane ist ein Container, welcher mit einer Scrollbar ausgestattet wird, wenn die Inhalte zu groß sind, um sie komplett darstellen zu können. Scrollbars dürften Ihnen vom Surfen im Internet bestens bekannt sein. Dabei handelt es sich um den Schiebebalken, der auch jetzt auf der rechten Seite Ihres Browser-Fensters vorhanden sein dürfte, damit Sie den kompletten Text lesen können, indem sie nach unten scrollen.

Außer dem üblichen parameterlosen Standardkonstruktor, verfügt die Klasse JScrollPane noch über folgende Konstruktoren:

Konstruktor Beschreibung
JScrollPane(Component view) Dem Konstruktor wird die Komponente übergeben, die innerhalb des JScrollPanes angezeigt werden soll.
JScrollPane(Component view, int vsbPolicy, int hsbPolicy) Hier werden neben der anzuzeigenden Komponente zwei zusätzliche Parameter übergeben, mit denen man die Sichtbarkeit der Scrollbars steuern kann. Dafür gibt es das Interface ScrollPaneConstants mit entsprechenden Konstanten, welche wir in der nächsten Tabelle erläutern wollen.
JScrollPane(int vsbPolicy, int hsbPolicy) Wie oben, nur ohne den Parameter für die Komponente.

Das Interface ScrollPaneConstants bietet folgende Konstanten für die Parameter vsbPolicy und hsbPolicy:

Konstante Erläuterung
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED Horizontale Scrollbar wird nur eingeblendet, wenn sie benötigt wird.
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER Horizontale Scrollbar wird nie eingeblendet.
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS Horizontale Scrollbar wird immer eingeblendet.
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED Vertikale Scrollbar wird nur eingeblendet, wenn sie benötigt wird.
ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER Vertikale Scrollbar wird nie eingeblendet.
ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS Vertikale Scrollbar wird immer eingeblendet.

Nachfolgend ein einfaches Beispiel für die Implementierung eines JScrollPanes:

 
// Import-Anweisungen
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;
 
public class JScrollPaneBeispiel
{
    // main-Methode
    public static void main(String[] args)
    {
        // Erzeugung eines neuen Dialoges
        JDialog meinJDialog = new JDialog();
        meinJDialog.setTitle("JScrollPane Beispiel");
        meinJDialog.setSize(450,300);
        // JPanel wird erzeugt
        JPanel panel = new JPanel();
        // Unser JPanel erhält einen langen Schriftzug
        panel.add(new JLabel("Dies ist ein viel zu langer Text für dieses " +
                "kleine Fenster, so dass man horizontal " +
                "scrollen muss, um ihn komplett zu lesen."));

        // JScrollPane wird erzeugt; dabei wird über den 
        // Konstruktor direkt unser JPanel hinzugefügt
        JScrollPane scrollPane = new JScrollPane (panel, 
            ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
            ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);

        // JScrollPane wird dem Dialog hinzugefügt
        meinJDialog.add(scrollPane);
        // Wir lassen unseren Dialog anzeigen
        meinJDialog.setVisible(true);
 
    }
}
 

Wir erstellen zunächst ein JPanel mit einem längeren Schriftzug, welcher breiter ist als das Dialogfenster. Um den Text also komplett lesen zu können, benötigen wir eine Scrollbar. Daher erzeugen wir ein JScrollPane-Objekt mit Hilfe des zweiten Konstruktors der obigen Konstruktor-Tabelle. Dieser bekommt unser zuvor erstelltes JPanel übergeben, welches im JScrollPane angezeigt werden soll. Zusätzlich geben wir über die Konstanten an, dass das JScrollPane nur dann eine vertikale und horizontale Scrollbar erhalten sein soll, wenn sie jeweils benötigt werden. In unserem Beispiel wird lediglich eine horizontale Scrollbar benötigt, um das komplette JLabel zu sehen:

Beispiel für ein JScrollPane