2016-05-04 25 views
1

的我有有,我已经进入了所有学生的详细信息的表格。它在我的屏幕左侧。而在右侧,我有另一个带有文本字段的面板,它根据表格中的选择显示学生的详细信息。我们也可以修改这些细节。存储修改细节我已经加入了一个名为“后”ListSelectionListener NScrollTable

按钮,但这里的问题是,当我改变了一些学生和细节不点击“后”,如果我直接选择表中其他一些学生。然后 在选择该学生之前,我需要显示一条警告消息。

而且我有一个类StudentTable其延伸ScrollPane和执行ListSelectionListener。我还有另一个名为StudentController的类,它也实现了ListSelectionListener。和我创建使用StudentTable类我的表,并添加listSelectionListener为StudentController。我已经在这两个类,即StudentTableStudentController overrided valueChanged()。但按我的新要求我必须调用只有StudentControllervalueChanged(),并从那里我需要停下来调用StudentTable。那么,有没有办法阻止像consume()

该事件的任何人有一个想法,我怎么能做到这一点?

+0

难道你没有'ListSelectionListener'添加到你的表模型? – STaefi

+0

不知怎的,我不明白为什么你已经在'StudentTable'和'StudentController'中实现了'ListSelectionListener'。为什么他们都在听同样的JTable?现在你想要消费其中一个人发现的事件。找出真正的问题是很难的。你可以提供[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

好的,但我需要停止该事件。我已经更新了我的描述。请仔细观察一次 –

相关问题