Beispiel für die Verwendung von JScrollPane

JScrollPane ist ein Container, der die Möglichkeit bietet, horizontales oder vertikales Scrollen oder beides gleichzeitig zu erstellen, wenn die angezeigte Komponente die Größe des JFrame.

Der Code zum Erstellen eines Bildlaufs bar in java  ist sehr einfach. Die beliebteste Verwendung ist JTextArea, indem dem .

import javax.swing.JFrame; 
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class JScrollPaneTest {

//20-zeiliges, 50-spaltiges Textfeld
JTextArea jta = new JTextArea(20, 50);

public JScrollPaneTest(){
JFrame f = new JFrame("JScrollPaneExample");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
f.setVisible(true);

JScrollPane jsp = new JScrollPane(jta);
f.add(jsp, BorderLayout.CENTER);
f.pack();
}

public static void main(String[] args) {
new JScrollPaneTest();
}
}
Output
JScrollPane zu Jtextarea hinzufügen

Die Bildlaufleiste erstellt sowohl horizontale als auch vertikale Balken, wenn der Text die Dimension des Fensters überschreitet.

JScrollBar und JViewPort

A JScrollPane kombiniert die beiden Klassen JScrollBar et JViewPort et  verwendet eine Instanz des letzteren, um das für den Benutzer sichtbare Teil zu verwalten. Er ist für die Bemaßung und Positionierung sowohl auf vertikalen als auch auf horizontalen Aufzügen verantwortlich.

Hier ist der Code zum Abrufen beider Scrollbalken (horizontal und vertikal):

JScrollBar vjsp = jsp.getVerticalScrollBar(); 
JScrollBar hjsp = jsp.getHorizontalScrollBar();
Der Zugriff auf das Ansichtsfenster erfolgt mit der Methode getViewport()In diesem Beispiel fügen wir ein Bild zu JScrollPane und ändern die Position der Viewport-Koordinaten mit dem setViewPosition(Point p).

import java.awt.Point; 
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JViewport;

public class JScrollPaneTest {

public JScrollPaneTest(){

JFrame f = new JFrame("JScrollPaneExample");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
f.setVisible(true);
f.setSize(300,300);

ImageIcon image = new ImageIcon("Fleur.jpg");
JLabel pimage = new JLabel();
pimage.setIcon(Bild);

JScrollPane jsp = new JScrollPane(pimage);
JViewport jvp = new JViewport();
jvp = jsp.getViewport();
jvp.setViewPosition(new Point(30,200));
f.add(jsp);
}

public static void main(String[] args) {
new JScrollPaneTest();
}
}
Output

Bild zu jscrollpane hinzufügen jviewport

Einstellungen ändern

Wenn das Fenster zum Beispiel breit ist, verschwinden die beiden Balken, weil wir sie nicht brauchen. Wenn Sie die Höhe des Fensters verringern, werden sie wieder angezeigt. Dies wird durch die Scroll-Panel-Richtlinie für jeden Balken gesteuert.

JScrollPane verfügt über zwei Konstruktoren, mit denen Sie die Einstellungen zum Zeitpunkt der Erstellung ändern können:
  • JScrollPane(Komponente c, int vertikal, int horizontal)
  • JScrollPane(int vertikal, int  horizontal)
Sie können die Anzeigerichtlinie der beiden Balken auch nach der Erstellung mit den beiden Methoden ändern:  setHorizontalScrollBarPolicy()setVerticalScrollBarPolicy().

VERTICAL_SCROLLBAR_AS_NEEDED HORIZONTAL_SCROLLBAR_AS_NEEDED Dies ist standardmäßig der Fall, Bildlaufleisten werden nach Bedarf angezeigt und ausgeblendet.
VERTICAL_SCROLLBAR_ALWAYS HORIZONTAL_SCROLLBAR_ALWAYS Immer Bildlaufleisten anzeigen.
VERTICAL_SCROLLBAR_NEVER HORIZONTAL_SCROLLBAR_NEVER Scrollbalken werden immer ausgeblendet.

Die folgende Anweisung wird dem Code des ersten JTextArea-Beispiels direkt nach JScrollPane:

jsp.setVerticalScrollBarPolicy(jsp. VERTICAL_SCROLLBAR_ALWAYS); 
Output:

jscrollpane-Richtlinie Bildlaufleisten immer anzeigen

Referenzen:
Oracle-Dokumentation: JScrollPane
Oracle-Dokumentation: JViewPort
http://www2.htw-dresden.de/~beck/JAVA11/SWING/scrolling.html