gpt4 book ai didi

java - 如何使用 swing 创建可扩展面板?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:03:51 34 4
gpt4 key购买 nike

我想创建一个展开和折叠面板列表,如下图所示:

expandand collapse panels

我还没有为此找到任何 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);

最佳答案

您可以查看来自SwingXJXTaskPaneContainerJXTaskPane具有以下优点的项目:

  • 它们就像 JPanel 一样是组件,因此使用它们不需要额外的努力。
  • 与 Accordion 不同,您可以同时展开多个面板时间。
  • 它们对折叠/展开事件有很酷和流畅的效果。
  • 与树/树表不同,您不必弄乱 TreeModel也不TreeTableModel根本。树和树表也是旨在以分层形式显示数据的组件,而不是向其中添加组件。

如果您不喜欢任务 Pane 并想自己实现一些东西,那么您可以使用 JXCollapsiblePane(也可以在 SwingX API 中使用)。

检查 SwingLabs Demos一套完整的 SwingX 组件演示。

截图

enter image description here

关于java - 如何使用 swing 创建可扩展面板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25703056/

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