0

JScrollpane にいくつかのパネルを追加してフレームに追加しようとしていますが、スクロールできません。これがコードです。

first_panel =  new JPanel();
first_panel.setBackground(Color.red);
second_panel =  new JPanel();
second_panel.setBackground(Color.blue);
third_panel =  new JPanel();
third_panel.setBackground(Color.green);
fourth_panel =  new JPanel();
fourth_panel.setBackground(Color.red);
fifith_panel =  new JPanel();
fifith_panel.setBackground(Color.blue);
six_panel =  new JPanel();
six_panel.setBackground(Color.green);
final_panel =  new JPanel();
final_panel.setLayout(null);
final_panel.setBackground(Color.gray);
final_panel.add(first_panel);
final_panel.add(second_panel);
final_panel.add(third_panel);
final_panel.add(fourth_panel);
final_panel.add(fifith_panel);
final_panel.add(six_panel);

first_panel.setBounds(10,10,200,100);
second_panel.setBounds(10,10,200,200);
third_panel.setBounds(10,10,200,300);
fourth_panel.setBounds(10,10,200,400);
fifith_panel.setBounds(10,10,200,500);
six_panel.setBounds(10,10,200,600);
panel_scroll = new JScrollPane(final_panel);
panel_scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);    
final_panel.setBounds(0,0,400,400);
// scroll_panel =  new JPanel();
// scroll_panel.setLayout(null);
// scroll_panel.add(panel_scroll);
// panel_scroll.setBounds(0,0,400,400);
frame.getContentPane().add(panel_scroll);

誰かがこれを手伝ってくれますか。前もって感謝します。

4

1 に答える 1

3
  • LayoutManagersの代わりにstandard を使用するAbsoluteLayoutと、Swing GUI は継続的または比例的にサイズ変更されますJFrame

  • すべてが画面上で同じサイズになる可能性がある場合に使用GridLayout()しますfinal_panelJPanels

  • をオーバーライドgetPreferredSizeし、画面上JPanelで初期化および修正します (よりもPreferredSize大きい次元)final_panelJScrollPane

  • をオーバーライドしてから、画面上で初期化と修正ScrollPanel.setPreferredScrollableViewportSize(new Dimension(int, int));を呼び出す必要がありますJFrame.pack()PreferredSize

  • JScrollPane.getVerticalScrollBar().setUnitIncrement(int);自然なスクロールのためにオーバーライドする必要があります

于 2013-07-08T10:24:21.873 に答える