gpt4 book ai didi

java - 停止在 BoxLayout 中扩展 JScrollPane

转载 作者:行者123 更新时间:2023-12-02 04:31:05 25 4
gpt4 key购买 nike

下面 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());

关于java - 停止在 BoxLayout 中扩展 JScrollPane,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31455511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com