私は複数の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を移動させたくないため、JScrollPaneをContentPaneに追加できません。また、ScrollPaneが機能しているかもしれませんが、私が追加するオブジェクトが垂直に積み重ねられる必要があります。ビューポートヘルプに感謝します。アイデア? –
ビューポートビューがスクロールペインのビューポートよりも大きい場合、スクロールバーが表示されます。 –
バーを表示させるためにオブジェクトを追加しようとしましたが、表示されませんでした –