내가 문제 무엇을 얻을하지 않습니다 제공합니다.
DefaultMutableTreeNode
은 의미가 있기 때문에 사용자 개체에 toString
메서드를 사용합니다. JTree
에는 객체를 그리는 문자열이 필요하므로 객체에 문자열 미리보기를 요청하는 것이 좋습니다.
당신이 정말로 개체에 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();
}
}
하지만를 이 작업을 수행 할 시점을 알 수 있습니다. 또한 toString
메서드를 재정 의하여 DefaultMutableTreeNode
을 확장 할 수도 있지만 개체에 대한 추가 참조가 필요하거나 다운 캐스트이 필요합니다.
문자열과 다른 시각화가 필요한 경우 TableCellRenderer
을 구현하는 자체 렌더링을 작성해야합니다.
그건 정확히 내 문제였다 :이 경우에'DefaultMutableTree'의'toString()'을 오버라이드하는 것이 사용자 객체의'toString()'을 오버라이드하는 것과 같다는 것을 몰랐다. 외부 API, 그래서 그것을 할 수 없었다). –
활동에 제목과 시간 필드가있는 활동 개체가있는 JTree가있는 경우 제목과 시간을 표시하는 별도의 열이있는 표에서이 개체를 사용할 수 있으며 제목 시간을 표시하려는 JTree에서이 개체를 사용할 수 있습니다 .. 그러나 toString() 메서드를 재정의 할 경우 모두 만족시킬 수 없습니다 ... – dendini