基になるモデルが変更されたときに JxTreeTable を再描画する最善の方法を見つけるのに苦労しています。
テーブル内のノードごとに対応するモデル オブジェクトがあるため、モデルが変更された場合はノードを取得できます。
その後、ノードが与えられた場合、テーブルで再描画/変更イベントをトリガーして強制的に再描画する方法を教えてください。手がかりを歓迎します。詳細を軽くして申し訳ありません。コードで示すことはあまりありません。
基になるモデルが変更されたときに JxTreeTable を再描画する最善の方法を見つけるのに苦労しています。
テーブル内のノードごとに対応するモデル オブジェクトがあるため、モデルが変更された場合はノードを取得できます。
その後、ノードが与えられた場合、テーブルで再描画/変更イベントをトリガーして強制的に再描画する方法を教えてください。手がかりを歓迎します。詳細を軽くして申し訳ありません。コードで示すことはあまりありません。
私はこれをやってしまった:
TreeTableNode parent = node.getParent();
modelSupport.firePathChanged(new TreePath(getPathToRoot(parent)));
このコードは、DefaultTreeTableModel を拡張する私のモデルで呼び出されます。
node
変更されたモデルを含む AbstractMutableTreeTableNode です。
JTree
モデルが標準およびと同様に正しいイベントを発生させると、自動的に機能しますJTable
。
標準の例JTree
は、Swing tutorial
あなたはこれを試すことができます:
yourJxTreeTable.getTreeTableModel.fireTableRowsUpdated(firstRow, lastRow)
うまくいくと思います。
DefaultTreeTableModel には、イベントを発生させるために使用できるmodelSupportフィールドが含まれています。あなたの場合、モデルで次のコードを使用できます。
modelSupport.fireNewRoot();
シンプル、JXTreeTable.updateUI() への呼び出し;