我想创建一个展开和折叠面板的列表,如下图所示:
我还没有找到任何与此相关的 Swing 组件,所以我开始创建类似的东西。
我尝试将按钮一个放在另一个下面,以填充可用宽度,但实际上不起作用。我只能看到最后添加的一个。
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(new JButton("Delphi Projects"), BorderLayout.NORTH);
panel.add(new JPanel(), BorderLayout.NORTH); // hidden panel
panel.add(new JButton("Delphi Projects | Delphi Files"), BorderLayout.NORTH);
panel.add(new JPanel(), BorderLayout.NORTH); // hidden panel
panel.add(new JButton("Other Files"), BorderLayout.NORTH);
panel.add(new JPanel(), BorderLayout.NORTH); // hidden panel
panel.add(new JButton("C++ Builder Projects | C++ Builder Files"), BorderLayout.NORTH);
panel.add(new JPanel(), BorderLayout.NORTH); // hidden panel
JScrollPane scroll = new JScrollPane(panel);
你可以看看JXTaskPaneContainer
and JXTaskPane
from SwingX项目具有以下优势:
- 它们是组件,就像
JPanel
因此,与他们合作不需要额外的努力。
- 与手风琴不同,您可以随时展开多个面板
时间。
- 它们对折叠/展开事件具有凉爽且平滑的效果。
- 与树/树桌不同,您不必搞乱其中任何一个树模型 nor 树表模型根本不。此外,树和树表是旨在以分层形式显示数据的组件,而不是向其中添加组件。
如果您不喜欢任务窗格并想自己实现一些东西,那么您可以JXCollapsiblePane
(也可在 SwingX API 中使用)。
Check SwingLabs 演示查看完整的 SwingX 组件演示集。
截屏
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)