2016-05-04 7 views
1

私は入力したすべての学生の詳細を持つテーブルを持っています。私の画面の左側にあります。そして右側には、テーブルの選択に基づいて学生の詳細を表示するテキストフィールドを持つ別のパネルがあります。また、これらの詳細も変更できます。変更された詳細を保存するには、「投稿」というボタンを追加しましたListSelectionListener of NScrollTable

しかし、ここで問題となるのは、学生の詳細を変更し、テーブルの他の生徒を直接選択すると「投稿」をクリックしない場合です。その後、その学生の選択をする前に、私は警告メッセージを表示する必要があります 。

私はクラスStudentTableを持っていて、ScrollPaneに広がり、ListSelectionListenerを実装しています。そして私はStudentControllerという別のクラスも持っています。これはListSelectionListenerも実装しています。そして私はStudentTableクラスを使ってテーブルを作成していて、リストセレクトリストをStudentControllerとして追加しました。そして、StudentTableStudentControllerの両方のクラスでvalueChanged()を上書きしました。しかし私の新しい要求に従って、valueChanged()StudentControllerと呼ぶ必要があります。そこで、StudentTableへの呼び出しを停止する必要があります。だから、そのようなイベントを停止する方法がありますconsume()

誰もが私はこれを達成するための考えがありますか?

+0

テーブルのモデルに 'ListSelectionListener'を追加しませんでしたか? – STaefi

+0

なぜなら、あなたが 'StudentTable'と' StudentController'の両方で 'ListSelectionListener'を実装した理由を理解できません。なぜ彼らの両方が同じ 'JTable'を聞いているのですか?そして今、あなたはそれらのうちの1人が捕まえたイベントを消費したいと思っています。本当の問題が何であるかを見つけるのは何とか難しいです。あなたは[MCVE]を提供できますか? – STaefi

答えて

0

ListSelectionListenerをテーブルのSelectionModelに追加してから、選択が変更されるたびに、データとpostボタンのステータスを確認してください。それがデータを掲載していない場合は、警告を表示してください。

table.getSelectionModel().addListSelectionListener(new ListSelectionListener() { 

     @Override 
     public void valueChanged(ListSelectionEvent e) { 
      // TODO check here for your data, if changed and not posted, show warning 

     } 
    }); 
+0

[OK]をクリックしてそのイベントを停止する必要があります。私は私の記述を更新しました。一度それを調べてください –