Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


8.4.2

JScrollPane



Abbildung 8.8: JScrollPane
Abbildung 8.8

Ein JScrollPane dient dazu, Komponenten anzuzeigen, deren Ausmaße zu groß für die Oberfläche sind. In diesem Fall werden horizontale und vertikale JScrollbars angezeigt.

Ein JScrollPane besteht dabei aus dem aktiven Bereich JViewport, den zwei Rollbalken und der Ecke zwischen ihnen.

Die Richtlinien, wann die einzelnen Rollbalken angezeigt werden sollen, können über die Methoden setVerticalScrollBarPolicy(int policy) bzw. setHorizontalScrollBarPolicy(int) eingestellt werden. Zu diesem Zweck dienen die folgenden Konstanten:

HORIZONTAL_SCROLLBAR_AS_NEEDED bzw.
VERTICAL_SCROLLBAR_AS_NEEDED
Die Standardeinstellung bewirkt, dass die JScrollBars nur dann angezeigt werden, wenn die Komponente größer als der sichtbare Bereich ist. Ist dies nicht der Fall, verschwinden die Scrollbars.
HORIZONTAL_SCROLLBAR_ALWAYS bzw.
VERTICAL_SCROLLBAR_ALWAYS
Mit dieser Option werden die Rollbalken immer angezeigt.
HORIZONTAL_SCROLLBAR_NEVER bzw.
VERTICAL_SCROLLBAR_NEVER
Hier werden die Rollbalken nie angezeigt.

Um eine Komponente in einem JScrollPane zu integrieren, kann man eine der drei Alternativen benutzen, die das Gleiche bewirken:
  JScrollPane scrollPane = new JScrollPane(new JTextArea());
oder
  JScrollPane scrollPane = new JScrollPane();
  scrollPane.setViewPortView(new JTextArea());
oder
  JScrollPane scrollPane = new JScrollPane();
  scrollPane.getViewport().setView(new JTextArea());
Über den JViewport kann dabei auch der sichtbare Bereich durch das Programm gesetzt werden. So kann man einen Bereich definieren, der innerhalb des angezeigten Bereiches sichtbar gemacht werden soll. Alternativ können die Koordinaten des linken oberen Eckpunktes des sichtbaren Bereiches angegeben werden.
  scrollRectToVisible(Rectangle r)
  setViewPosition(Point p)
Die erste Methode ist dabei auch in JComponent definiert, die natürlich nur wirksam ist, wenn die Komponente in einem JScrollPane eingebettet ist.

Abbildung 8.9: Eigenes JScrollPane mit Positionsleisten
Abbildung 8.9


Material zum Beispiel

Das JScrollPane lässt sich optional noch mit einer zusätzlichen horizontalen und vertikalen Leiste versetzen. Dazu muss die entsprechende Komponente mittels
  setColumnHeaderView(JComponent comp)
  setRowHeaderView(JComponent comp)
gesetzt werden. Wenn sich der sichtbare Bereich innerhalb des JScrollPane verändert, so werden auch die Leisten synchronisiert (also passend verschoben).

Die vier Ecken des JScrollPane lassen sich ebenfalls setzen. Die Methode
  setCorner(String cornerIdentifier, Component comp)
erwartet neben der Eckkomponente eine der vier Konstanten für die möglichen Ecken, definiert in der Klasse JScrollPane:

Beispiel

  JScrollPane scrollPane = new JScrollPane(
     new JLabel(
        new ImageIcon ("cow.jpg")));
  getContentPane().add(scrollPane);


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.