4

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行にしか表示されません(右側のボタンも見えません)。私はまだ彼らに包んでもらいたい。ここで何が起こっているのですか?ちなみに、縦スクロールバーのみ表示し、横スクロールバーは表示しません。ボタンが右端に達したときに新しい行に折り返してほしい。

4

1 に答える 1

4

ここで私の答えを確認してください:JToolBarsをその下のJPanelに隠さずに、次の行(FlowLayout)にラップさせるにはどうすればよいですか?

この正確な状況で使用したカスタムフローレイアウトがあります。プラグを差し込むだけで、スクロールペインでも折り返されます。

于 2011-04-20T19:40:02.040 に答える