我有一张桌子,上面有我输入的所有学生详细信息。它在屏幕的左侧。在右侧,我还有另一个带有文本字段的面板,该面板根据表格中的选择显示学生的详细信息。我们也可以修改这些细节。为了存储修改后的详细信息,我添加了一个名为“发布”的按钮
但是这里的问题是,当我直接在表中选择其他学生时,我更改了一些学生详细信息并且没有单击“发布”时。然后
在选择该学生之前,我需要显示一条警告消息。
我有一个类StudentTable
扩展了ScrollPane
并实现了ListSelectionListener
。我还有一个名为StudentController
的类,它也实现了ListSelectionListener。我正在使用StudentTable
类创建表,并将listSelectionListener添加为StudentController
。而且我在这两个类(即valueChanged()
和StudentTable
)中都覆盖了StudentController
。但是根据我的新要求,我只需要调用valueChanged()
中的StudentController
,然后从那里停止对StudentTable
的调用。那么有什么办法可以阻止该事件,例如consume()
任何人都有一个想法我该如何实现?
最佳答案
尝试将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
}
});