2016-05-11 7 views
1

私はJavaを使い慣れていないので、jTableを使ってGUIを開発しています。 私はjTableから変更を追跡したいので、をTableModelにdinamically追加しました。 しかし、私は追跡したくないテーブルでいくつかの変更が行われているので、何とかTableModelListenerのオンとオフを切り替える必要があります。Java:TableModelにTableModelListenerがあるかどうかはどうすればわかりますか?

既にそのモデルにリスナーがあるかどうかを確認するにはどうすればよいですか?

if (/* is there an event listener for the TableModel*/){   
    listVersions.getModel().removeTableModelListener(checkBoxListener); 
    } 
functionModifyingTable(); 
listVersions.getModel().addTableModelListener(checkBoxListener); 

私の意図は、mycodeが存在しないリスナーをオフにするのを防ぐことです。

+0

なぜリスナーがあるかを知る必要がありますか?それを削除するだけです。存在していれば削除されます。いけない場合は、何もしません。 –

+0

@IvanPeralesM。それは正しいですし、実際には私の最終的なコードに私を導いた...まだ私はリスナーが実装されているかどうかを知る方法については無力です。ありがとうございました! – Gorgonzola

答えて

2

キャストテーブルモデルをAbstractTableModelに変更し、getTableModelListeners()を使用してください。

((AbstractTableModel) listVersions.getModel()).getTableModelListeners(); 
+0

これは本当にうまく動作します、あなたの助けに感謝! – Gorgonzola

0

Ivan Perales M.はコメントで示唆されているように私は最終的にやった:私はちょうど、リスナーを削除することができますし、何のリスナーがありません場合は、何も起こりません。

関連する問題