여러 개의 Object (사용자 정의 클래스가 Jpanel을 확장) 객체가있는 JPanel이 있습니다. JPanel에는 7 개의 행과 1 개의 열이있는 격자 레이아웃이 있습니다. 나는 7 개의 객체가있는 JPanel을 다른 JScrollPane에 추가하려고하므로 모든 객체를 보려면 스크롤 할 수 있지만 이상한 일을합니다. 스크롤 막대는 JPanel에 몇 개의 객체가 있는지에 관계없이 표시되지 않습니다. 어떤 아이디어? 미리 감사드립니다.Java ScrollPane/JPanel
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneLayout;
public class Main {
@SuppressWarnings("deprecation")
public static void main(String[] args) {
JFrame frame = new JFrame("Test");
frame.setLayout(new BorderLayout());
JLabel title = new JLabel("Game", JLabel.CENTER);
title.setPreferredSize(new Dimension(60,60));
title.setBorder(BorderFactory.createLineBorder(Color.black,5));
frame.add(title,BorderLayout.NORTH);
frame.setSize(850,480);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Grid g = new Grid();
JPanel jp = new JPanel();
jp.setLayout(new GridLayout(1,3));
jp.add(g);
JPanel test = new JPanel();
test.setLayout(new GridLayout(7,1));
test.add(p1);
test.add(p2);
test.add(p3);
test.add(p4);
test.add(p5);
test.add(p6);
test.add(p7);
JScrollPane jsp = new JScrollPane(test);
jsp.setViewportView(test);
jsp.getVerticalScrollBar().setUnitIncrement(50);
jsp.setCorn
jsp.setVerticalScrollBarPolicy(22);
jp.add(jsp,BorderLayout.EAST);
frame.add(jp);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
ScrollPane을 사용할 때 다른 JPanel을 이동하지 않으려면 ContentPane에 JScrollPane을 추가 할 수 없습니다. 또한 ScrollPane이 작동 중일 수도 있지만, 수직으로 겹쳐 쌓기 위해 추가하는 객체가 필요합니다. 뷰포트 도움말에 감사드립니다. 아이디어? –
뷰포트 뷰가 스크롤 창 뷰포트보다 큰 경우 스크롤 막대가 표시됩니다. –
막대를 표시하기 위해 더 많은 객체를 추가했지만 표시되지 않습니다. –