FlowLayoutを使用するJPanelにたくさんのボタンがあります。本当に素敵に見えます。ボタンがパネルの右側に到達すると、新しい行から始まり、2次元のグリッドが作成されます。
コードは次のとおりです。
Container cp = getContentPane();
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
for (int i = 0; i < 20; i++)
panel.add(new JButton("Button " + i));
cp.add(panel);
ただし、パネルを垂直スクロールのみのスクロールペインに配置した瞬間:
Container cp = getContentPane();
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
for (int i = 0; i < 20; i++)
panel.add(new JButton("Button " + i));
JScrollPane pane = new JScrollPane(
panel,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
cp.add(pane);
ボタンは1行にしか表示されません(右側のボタンも見えません)。私はまだ彼らに包んでもらいたい。ここで何が起こっているのですか?ちなみに、縦スクロールバーのみ表示し、横スクロールバーは表示しません。ボタンが右端に達したときに新しい行に折り返してほしい。