我有一个JTree,我试图修改它,以便任何选定节点的实际选择区域将从JTree的最左侧延伸到JTree的右侧。JTree:修改外观而不管L&F
Web上的大多数示例都会介绍如何扩展BasicTreeUI。从那里你只需修改决定选择区域的方法,就是这样。但是,这将要求JTree - 无论运行哪个平台 - 都将使用该实现。我将无法真正能够利用针对特定平台的各种UI实现,因为我将始终使用BasicTreeUI(而不是Metal,Windows或Aquia实现)。
我理想能够做的就是采用当前安装在JTree上的BasicTreeUI的任何实现,并将其包装在我的扩展BasicTreeUI的自定义包装中。从那里我将覆盖所有的方法和委托给包装的用户界面,并在需要重新计算节点选择区域时自己实现一些方法。但是,BasicTreeUI上的大多数方法都受到保护,因此我可以真正做到这一点。
不知道如何解决这个问题...任何想法都会受到欢迎!
“但是,BasicTreeUI上的大多数方法都受到保护” - 如果它们受到保护,那么您可以覆盖它们,您的意思是'private'吗? – 2012-03-31 00:39:09