我在处理'打包'JPanel并允许滚动条的正确方法方面遇到了很大问题。
我遗漏了一些代码,但我相信所提供的内容应该足够了。
问题是,JScrollBar要么不显示,要么无法与之交互(如果我将滚动条设置为始终具有垂直条)。
以下是描述此内容的图片:
![没有滚动条存在] [1]
ProjectPanel(扩展JPanel)具有固定大小,如您所见,它比可见视图端口延伸得更远。没有办法获得JPanel(ProjectSelector)的计算高度,因为ProjectPanels也可以这样转换:
![他们需要填写网格] [2]
如果有人可以提供一些有关如何做到这一点的见解,那就太棒了。截至目前,我不惜一切代价不使用外部API,因为这会带来更多弊大于利。
问题:
如何将首选大小的高度设置为“灵活”,以便添加组件时可以扩展?如果这不理想/不可能,我怎样才能正确地允许JScrollPane有效地显示JPanel的所有组件?
答案 0 :(得分:2)
答案 1 :(得分:0)
如果您正在寻找不同的布局,为什么不尝试MiGLayout?它是一个非常强大而灵活的布局管理器。
查看详细示例here。
从该链接重写initUI
方法,以查看对您的问题感兴趣的行为:
public void initUI() {
this.setPreferredSize(new Dimension(100, 100));
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setJMenuBar(initMenuBar());
this.getContentPane().add(new JScrollPane(mainPanel = initMainPanel()));
this.setLocationByPlatform(true);
this.pack();
}