2012-04-17 3 views
1

"ShipmentItem"を格納するJTreeがあり、その上に.toString()に量、ShipmentItemの名前が表示されます。ある時点では、一度に複数の項目の数量を変更しますが、実際にその特定のツリーノードをクリックするまで、toString()は更新されません。私はJTreeを 'Property Fired'を使用するように拡張する必要はありません。更新を表示できるようにリフレッシュできるようにしたいだけです。JTreeを拡張しないと、ツリー内のオブジェクトを変更した後にモデルを強制的に更新する必要がありますか?

私はjtree.setModel(tree.getModel())を試しましたが、これはまったく動作しませんでした。

+0

[SSCCE](http://sscce.org/)をすぐにご利用ください。 –

答えて

3

TreeModelに何かを変更する場合(ShipmentItemオブジェクトを調整して)、TreeModelが正しいイベントを発生させるようにする必要があります。これにより、JTreeは正しい部分を再描画します。たとえば、DefaultTreeModelから開始した場合は、ノードのオブジェクトが変更されたときに内線番号nodeChangedを呼び出す必要があります。

注:正しいレンダリングのためにtoStringメソッドを調整する必要はありません。探しているコンセプトはTreeCellRendererです(詳細はSwing tutorialを参照してください)

関連する問題