gpt4 book ai didi

java - JTree : modify apperance regardless of L&F

转载 作者:行者123 更新时间:2023-11-30 09:38:58 25 4
gpt4 key购买 nike

我有一个 JTree,我正在尝试对其进行修改,以便任何选定节点的实际选择区域将从 JTree 的最左侧扩展到 JTree 的最右侧。

网络上的大多数示例都在谈论扩展 BasicTreeUI。从那里您只需修改确定选择区域的方法,仅此而已。然而,这将要求 JTree——不管它在哪个平台上运行——将使用该实现。我将无法真正利用针对特定平台的各种 UI 实现,因为我将一直使用 BasicTreeUI(而不是 Metal、Windows 或 Aquia 实现)。

理想情况下,我希望能够做的是采用当前安装在 JTree 上的 BasicTreeUI 的任何实现,并将其包装在我的扩展 BasicTreeUI 的自定义包装器中。从那里我将覆盖所有方法并委托(delegate)给包装的 UI,并在需要重新计算节点选择区域的地方执行我自己的一些方法。但是,BasicTreeUI 上的大多数方法都受到保护,所以我真的可以做到这一点。

不确定如何解决这个问题...欢迎提出任何想法!

最佳答案

也许您可以覆盖 setUI 并将提供的 UI 包装在您的自定义树 UI 中,如下所示:

@Override
public void setUI(TreeUI ui) {
super.setUI(new MyCustomTreeUI(ui));
}

要考虑的另一个选项是研究在全局 UIManager 中提供/设置树 UI 属性。我相信特定于平台的树 UI 会向全局 UIManager 询问属性值并相应地配置自己 - 也许你可以简单地做一些像 UIManager.put("Tree.selectionWidth", 100 )

关于java - JTree : modify apperance regardless of L&F,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9944201/

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