Пример использования JScrollPane
JScrollPane — это контейнер, который предоставляет возможность создавать горизонтальную или вертикальную прокрутку или и то, и другое одновременно, когда отображаемый компонент превышает размер JFrame.Код для создания скролла bar в java очень просто. Наиболее популярным использованием является JTextArea путем добавления панели прокрутки в .
import javax.swing.JFrame;Output
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class JScrollPaneTest {
//20-строчное, 50-колоночное текстовое поле
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();
}
}
Полоса прокрутки создает как горизонтальные, так и вертикальные полосы, если текст превышает размер окна.
JScrollBar и JViewPort
A JScrollPane объединяет эти два класса JScrollBar et JViewPort et использует экземпляр последнего для управления частью, видимой пользователю. Он отвечает за размер и позиционирование на основе как вертикальных, так и горизонтальных лифтов.
Вот код для получения обеих полос прокрутки (горизонтальной и вертикальной):
Вот код для получения обеих полос прокрутки (горизонтальной и вертикальной):
JScrollBar vjsp = jsp.getVerticalScrollBar();
JScrollBar hjsp = jsp.getHorizontalScrollBar();
Доступ к окну просмотра осуществляется с помощью метода getViewport(). В этом примере мы добавим изображение в JScrollPane и изменим положение координат области просмотра с помощью setViewPosition(Point p).
import java.awt.Point;Output
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(изображение);
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();
}
}
Изменить настройки
Например, если окно широкое, две полосы исчезают, потому что они нам не нужны. Если вы уменьшите высоту окна, они появятся снова. Это контролируется политикой панели прокрутки для каждого bar.
JScrollPane имеет два конструктора, которые дают вам возможность изменять настройки во время создания:
- JScrollPane(Component c, int vertical, int horizontal)
- JScrollPane(int vertical, int horizonal)
Вы также можете изменить политику отображения двух стержней после создания с помощью двух методов: setHorizontalScrollBarPolicy(), setVerticalScrollBarPolicy().
VERTICAL_SCROLLBAR_AS_NEEDED HORIZONTAL_SCROLLBAR_AS_NEEDED | По умолчанию полосы прокрутки появляются и исчезают по мере необходимости. |
VERTICAL_SCROLLBAR_ALWAYS HORIZONTAL_SCROLLBAR_ALWAYS | Всегда показывать полосы прокрутки. |
VERTICAL_SCROLLBAR_NEVER HORIZONTAL_SCROLLBAR_NEVER | scrollbars всегда будут скрыты. |
Следующий оператор добавляется в код первого примера JTextArea сразу после JScrollPane:
References:jsp.setVerticalScrollBarPolicy(jsp. VERTICAL_SCROLLBAR_ALWAYS);Output:
Документация Oracle: JScrollPane
Документация Oracle: JViewPort
http://www2.htw-dresden.de/~beck/JAVA11/SWING/scrolling.html