Java摇摆:我怎样定义如何jtree就显示"用户对象"?
-
24-09-2019 - |
题
当使用 JTree
, ,一个"用户对象"的一个 DefaultMutableTreeNode
可以设置。这可以是任何一种,但它显示,它的 toString()
值是使用。这不是我需要什么。
我如何可以改变的方式用户的目的是显示?
注:我的用户对象 已 要不同的东西比一个 String
能够维持映射之间的树和用户的对象。
解决方案
我没有得到什么是你的问题。
,因为它是有意义的DefaultMutableTreeNode
将使用用户对象上的toString
方法。该JTree
需要串来绘制对象,因此,要求到对象的字符串rapresentation是确定的。
如果你真的需要避免调用你的对象toString
你将需要一种方式来提供反正它的串rapresentation,但是你必须写自己的MutableTreeNode
:
class MyTreeNode implements MutableTreeNode
{
UserObject yourObject;
MyTreeNode(UserObject yourObject)
{
this.yourObject = yourObject;
}
// implement all needed methods to handle children and so on
public String toString()
{
// then you can avoid using toString
return yourObject.sringRapresentation();
}
}
不过,我实在看不出这样的点。另外,你可以尝试通过重写DefaultMutableTreeNode
方法延长toString
,但你需要一个额外的参考对象或部分的向下转换的是必要的。
如果你真的需要一个不同的可视化不是字符串,你将不得不编写自己的渲染实现TableCellRenderer
。
其他提示
复盖toString()用户对象,或者提供一个 TreeCellRenderer, 基本的例子
另一个选择,如果你只关心文字所示用户对象并不想打扰TreeCellRender:延长jtree就和复盖 convertValueToText 用你自己的代码,创造一种描述性的串为对象。
不隶属于 StackOverflow