私はアプリケーションパッケージを作成していますが、メインクラスはメインメソッドで、GUIクラスからは分離されています。 GUIクラスには、2つのタブを持つjtabbedpaneが含まれています。最初のタブにはjtableがあり、2番目のタブには3つのテーブルがあり、jtable2、jtable3、jtable4という名前が付けられています。メインクラスの新しいインスタンスでは、私は最初のJTableに、このGUIクラスのコンストラクタでのListSelectionListenerを追加しました:Jtable ListSelectionListenerはjtableアクションに応答せず、同じクラスの別のjtableアクションに応答します
jTable1.getSelectionModel().addListSelectionListener((ListSelectionEvent event) -> { // do some actions here, for example /* my code */ });
と良い運命によって、それは、そのような選択に、非常によく を働いていると私はまた、非常によくも働いているGUIクラスのコンストラクタでJTabbedPaneのにChangeListenerを追加しました:
jTabbedPane1.addChangeListener((ChangeEvent e) -> {
/* my code */
});
しかし、私が試したとき3つのテーブルを含み、ListSelectionListenerを追加する2番目のタブで、GUIクラスコンストラクタのListSelectionListenerをjtable2という最初のテーブルに追加することを開始し、ListSelectionListenerを追加するコード〜jtable2は、
jTable2.getSelectionModel().addListSelectionListener((ListSelectionEvent event) -> { System.out.println("jTable2 Selected"); /* mycode */ });
疑問は間違いなく問題とはどのように解決するのですか?それは単純ではない場合、どのような確率やどのように私は多くを説明することができますか?
注のListSelectionListenerの追加は、他の第2のタブのテーブルに行われるであろう(jtable3、及びjtable4)、それが作成される他の計画されたタブに喜んで追加されたであろうと含むテーブル
見て、気をつけてくれてありがとう
問題を示す適切な[mcve]を投稿してください。したがって、JTableとListSelectionListenerを持つフレームが必要です。 1つのテーブルで作業する場合に取得します。その後、知識を使って実際のプログラムを修正します。 – camickr
実際には、私は最小限で完全で検証可能な例を書いて、直接答えを出すことができる前にそれを解決しようとします。jTabbedPane addChangeListenerで応答しない選択のjtableを再作成する際の問題は、 jtableのタブを再作成してjtableを更新し、最初のタブの他のテーブルの変更を更新します.jTabbedPane ChangeListenerでjtableの再作成をコメントすると非常にうまく動作します。 –