2012-04-17 1 views
1

"ShipmentItem"을 저장하는 JTree가 있고 그 위에 .toString()에 수량, ShipmentItem의 이름이 표시됩니다. 어떤 시점에서 한 번에 여러 항목의 수량을 변경하지만 실제로 해당 특정 트리 노드를 클릭 할 때까지 toString()이 새로 고쳐지지 않습니다. 나는 'Property Fired'를 사용하기 위해 JTree를 확장하고 싶지 않다. 그냥 업데이트를 보여주기 위해 새로 고침을 할 수 있기를 원한다.JTree를 확장하지 않으면 어쨌든 트리에서 객체를 변경 한 후 모델을 강제로 업데이트 할 수 있습니까?

jtree.setModel (tree.getModel())을 시도했는데 전혀 작동하지 않는 것 같습니다.

+0

더 나은 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. –

답변

3

TreeModel (무언가를 ShipmentItem 개체로 조정)로 변경하면 TreeModel이 올바른 이벤트를 발생시켜야합니다. 그러면 JTree이 올바른 부분을 다시 그립니다. 예를 들어 DefaultTreeModel에서 시작한 경우 노드의 개체가 변경되면 내선 번호가 nodeChanged이어야합니다.

참고 : 올바른 렌더링을 위해 toString 방법을 조정할 필요가 없습니다. 찾고있는 개념은 TreeCellRenderer입니다. 자세한 내용은 Swing tutorial을 확인하십시오.