停止在 BoxLayout 中扩展 JScrollPane
Stop expansion of JScrollPane within a BoxLayout
下面 JPanel
中的 JScrollPane
展开以填充框架。我怎样才能停止这种扩展,使 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
中的组件将在运行时动态添加,因此我需要 JScrollPane
来扩展它。
使用
pane1.setPreferredSize(button2.getPreferredSize());
如果您仍然遇到自动调整大小问题,请使用以下方法修复面板大小:
pane1.setMaximumSize(button2.getPreferredSize());
pane1.setMinimumSize(button2.getPreferredSize());
下面 JPanel
中的 JScrollPane
展开以填充框架。我怎样才能停止这种扩展,使 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
中的组件将在运行时动态添加,因此我需要 JScrollPane
来扩展它。
使用
pane1.setPreferredSize(button2.getPreferredSize());
如果您仍然遇到自动调整大小问题,请使用以下方法修复面板大小:
pane1.setMaximumSize(button2.getPreferredSize());
pane1.setMinimumSize(button2.getPreferredSize());