JScrollPane 사용 방법 예제

JScrollPane은 표시된 구성 요소가 JFrame.

스크롤 bar를 만드는 코드입니다  매우 간단합니다. 가장 널리 사용되는 용도는 .

import javax.swing.JFrame; 
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();
}
}
Output
Jtextarea에 JScrollPane 추가

스크롤 막대는 텍스트가 창의 크기를 초과하는 경우 가로 막대와 세로 막대를 모두 만듭니다.

JScrollBar 및 JViewPort

A JScrollPane은 두 클래스를 결합합니다. JScrollBar et JViewPort et  후자의 인스턴스를 사용하여 사용자에게 표시되는 부품을 관리합니다. 수직 및 수평 엘리베이터를 기반으로 치수와 위치를 담당합니다.

다음은 두 스크롤바(가로 및 세로)를 모두 검색하는 코드입니다.

JScrollBar vjsp = jsp.getVerticalScrollBar(); 
JScrollBar hjsp = jsp.getHorizontalScrollBar();
뷰포트는 getViewport()이 예제에서는 JScrollPane에 이미지를 추가하고 setViewPosition(포인트 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 이미지 = new ImageIcon("Fleur.jpg");
JLabel pimage = 새로운 JLabel();
pimage.setIcon(이미지);

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

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

jscrollpane에 이미지 추가 jviewport

설정 변경

예를 들어 창이 넓으면 필요하지 않기 때문에 두 개의 막대가 사라집니다. 창의 높이를 줄이면 창이 다시 나타납니다. 이는 각 bar에 대한 스크롤 패널 정책에 의해 제어됩니다.

JScrollPane에는 생성 시 설정을 변경할 수 있는 두 개의 생성자가 있습니다.
  • JScrollPane(Component c, int 세로, int 가로)
  • JScrollPane(int 세로, int  horizontal)
두 가지 방법으로 두 막대를 만든 후 표시 정책을 변경할 수도 있습니다.  setHorizontalScrollBarPolicy()setVerticalScrollBarPolicy().

VERTICAL_SCROLLBAR_AS_NEEDED HORIZONTAL_SCROLLBAR_AS_NEEDED 기본적으로 스크롤 막대가 나타나고 사라지는 경우입니다.
VERTICAL_SCROLLBAR_ALWAYS HORIZONTAL_SCROLLBAR_ALWAYS 항상 스크롤 막대를 표시합니다.
VERTICAL_SCROLLBAR_NEVER HORIZONTAL_SCROLLBAR_NEVER scrollbars 는 항상 숨겨집니다.

다음 명령문은 JScrollPane 바로 뒤에 첫 번째 JTextArea 예제의 코드에 추가됩니다.

jsp.setVerticalScrollBarPolicy(jsp. VERTICAL_SCROLLBAR_ALWAYS); 
< / pre> 출력 :

jscrollpane 정책은 항상 스크롤 막대를 표시합니다

참조:
Oracle 문서: JScrollPane
Oracle 문서: JViewPort
http://www2.htw-dresden.de/~beck/JAVA11/SWING/scrolling.html