停止在BoxLayout中扩展JScrollPane

时间:2015-07-16 13:24:41

标签: java swing jscrollpane boxlayout

以下$_SESSION['web2_user']中的JScrollPane展开以填充框架。如何停止此扩展,以使JPanel的大小与其中JScrollPane的大小相同?

JButton

我试过

  public class GUITest extends JFrame {

    public GUITest() {
        setPreferredSize(new Dimension(700, 500));
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel mainPanel = new JPanel();
        mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
        add(mainPanel);

        JButton button1 = new JButton();
        JButton button2 = new JButton();
        JButton button3 = new JButton();

        JScrollPane pane1 = new JScrollPane();
        mainPanel.add(button1);
        mainPanel.add(pane1);
        pane1.setViewportView(button2);
        mainPanel.add(button3);

        //Display the window.
        super.pack();
        super.setLocationRelativeTo(null);
        super.setVisible(true);
    }
}

但是滚动条出现了,我看不到按钮。此外,在我的真实程序中,pane1.setMaximumSize(button2.getPreferredSize()); 中的组件将在运行时动态添加,因此我需要JScrollPane进行扩展。

1 个答案:

答案 0 :(得分:2)

使用

pane1.setPreferredSize(button2.getPreferredSize());

如果仍有自动调整问题,请使用以下方法修复面板大小:

pane1.setMaximumSize(button2.getPreferredSize());
pane1.setMinimumSize(button2.getPreferredSize());