gpt4 book ai didi

java - 如何在 Java 中向 MultiSplitPane 添加新的 Split(行)?

转载 作者:行者123 更新时间:2023-12-01 15:11:22 24 4
gpt4 key购买 nike

我在java中有一个简单的MultiSplitPane。它有 1 行(分割)和 2 个节点(叶子)。如何在现有行下添加另一行。

以下是创建 MultiSplitPane 和 2 个叶子的代码:

List children = 
Arrays.asList(new Leaf("left"),
new Divider(),
new Leaf("right"));
Split modelRoot = new Split();
modelRoot.setChildren(children);

MultiSplitPane multiSplitPane = new MultiSplitPane();
multiSplitPane.getMultiSplitLayout().setModel(modelRoot);
multiSplitPane.add(new JButton("Left Component"), "left");
multiSplitPane.add(new JButton("Right Component"), "right");

这就是我添加另一个叶子的方法,但我需要添加新的分割(行):

Leaf newLeaf = new Leaf("newLeaf");
Split newSplit = (Split) multiSplitPane.getMultiSplitLayout().getModel();
java.util.List newList = new ArrayList();

newList.add(newLeaf);
newList.add(new Divider());
newList.addAll(newSplit.getChildren());

newSplit.setChildren(newList);

multiSplitPane.setModel(newSplit);
multiSplitPane.add(new JButton("new"), "newLeaf");
revalidate();

最佳答案

如果您想使用第二个 Split,您可以执行以下操作:

  • 创建几个组件放入第二个 Split 中。
  • 制作要将上述组件链接到的叶子。
  • 创建一个代表 Split 结构的新子列表。
  • 创建 Split 并将其子项设置为上面的列表。

这是最简单的部分。现在,关键是:

  • 将您的第二个分组添加到第一个分组的子列表中。请注意,您可能必须在第二个拆分之前将分隔线添加到第一个拆分的子列表中!
  • 为您的第一个 Split 调用“setChildren”。据我所知,您必须在修改 Split 的子列表后执行此操作。
  • 不要忘记将组件实际添加到 MultiSplitPane 并为 MultiSplitPane 调用“重新验证”。

看看this sample code.

关于java - 如何在 Java 中向 MultiSplitPane 添加新的 Split(行)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12304598/

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