gpt4 book ai didi

Java Swing : how do I define how a JTree displays the "user object"?

转载 作者:搜寻专家 更新时间:2023-11-01 01:24:10 28 4
gpt4 key购买 nike

使用JTree 时,可以设置DefaultMutableTreeNode 的“用户对象”。这可以是任何类型,但要显示它,使用它的 toString() 值。这不是我需要的。

如何更改用户对象的显示方式?

注意:我的用户对象必须不同于String,以便能够维护树和用户对象之间的映射。

最佳答案

我不明白你的问题是什么。

DefaultMutableTreeNode 将在用户对象上使用 toString 方法,因为它很有意义。 JTree 需要字符串来绘制对象,因此向您的对象请求它的字符串表示是可以的。

如果你真的需要避免在你的对象上调用toString,你将需要一种方法来提供它的字符串表示,但你必须编写自己的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();
}
}

但我真的不明白这样做的意义..此外,您可以尝试通过覆盖 toString 方法来扩展 DefaultMutableTreeNode,但您将需要一个额外的将需要引用您的对象或一些向下转换

如果您确实需要与字符串不同的可视化效果,则必须编写自己的实现 TableCellRenderer 的渲染。

关于Java Swing : how do I define how a JTree displays the "user object"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2575126/

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