何らかの理由で、これが機能しません。本当にシンプルなはずです。
(SOUTH) と (CENTER) JPanel (itemPanel)BorderLayout
を含むJFrame があります。JPanel
itemPanel はスクロールペインにラップする必要があります。その幅は x であり、そのすべての子はその長さを共有するため、基本的には 1 列のみのテーブルのように機能します。
何らかの理由で、スクロールペインにスクロールバー (およびスクロール) を表示できません。JFrame で:
setPreferredSize(dimension);
setDefaultCloseOperation(EXIT_ON_CLOSE);
getContentPane().add("South",controlPanel);
JScrollPane scroll = new JScrollPane(itemPanel);
scroll.setBorder(null);
getContentPane().add("Center",scroll);
super.pack();
setVisible(true);
itemPanel にいくつかのダミー パネルを初期化して追加します。
itemPanel = new ItemPanel(); // A JPanel with a flowlayout
itemPanel.setPreferredSize(new Dimension(dimension.width,0));
for(int i = 0; i < 20; i++){
JPanel p = new JPanel();
p.setPreferredSize(new Dimension(0,50));
p.setBackground(i%2 == 0 ? Color.GREEN : Color.YELLOW);
itemPanel.add(p);
}
スクロールペインを省略itemPanel.setPreferredSize(new Dimension(dimension.width,0));
すると水平スクロールバーが表示されますが、フローレイアウトには幅がないため、コンポーネントが 1 行に表示されるだけです。