gpt4 book ai didi

Java垂直布局

转载 作者:行者123 更新时间:2023-12-01 12:38:56 25 4
gpt4 key购买 nike

我无法解决以下两个问题。

问题1

我有一个 JScrollPane 类型面板,它托管一个 JPanel。在程序执行期间,JPanel 接收越来越多的子面板来托管,因此其高度逐渐增加(它使用流布局管理器)。我想要但无法实现的是,当 JPanel 的内容变得高于窗口时,使 JScrollPane 面板显示垂直滑动条(由于添加许多组件)。

到目前为止,我已经成功地创建了用户可以将子面板添加到 JPanel 的方法。但是,当它们变得太多,并且其中一些超出屏幕时,垂直滑动条就不会出现。我怎样才能让他们这样做?

请注意,我希望窗口宽度可以调整。每当调整窗口大小时,JPanel 都应该重新计算其高度,并相应地调整幻灯片。

问题2

JPanel 中,我在问题 1 中告诉过您,我使用的是流布局管理器,它以水平线设置组件。但是,我更喜欢垂直配置,这应该将所有组件添加到另一个组件的正下方,而不是像居中的配置一样。它们应该看起来像这样:

O============O
|COMP.1=== |
|COMP.2= |
|COMP.3===== |
| |
| |
O============O

而不是这样:

O============O
|COMP.1=== |
| |
|COMP.2= |
| |
|COMP.3===== |
O============O

在保持与问题 1 的解决方案的兼容性的同时,获得最终配置的最佳布局管理器是什么? (这意味着,在添加每个组件后调整 JPanel 的高度?)

提前非常感谢您的帮助!

最佳答案

我不是 swing 的铁杆用户,但在过去几个月使用它后,我建议使用 MIGLayout 。它的用途非常广泛,可以让您非常轻松地进行布局。学习需要一点时间,但它会使许多布局问题变得非常简单,例如表单。

您的问题可以通过 MIGLayout 解决:

JScrollPane sp = new JScrollPane();
JPanel panel = new JPanel();
panel.setLayout(new MigLayout("gap rel 0", "grow"));

然后可以像这样添加面板:

panel.add(new JPanel(), "wrap");

关于Java垂直布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25304941/

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