我有一张桌子,上面有我输入的所有学生详细信息。它在屏幕的左侧。在右侧,我还有另一个带有文本字段的面板,该面板根据表格中的选择显示学生的详细信息。我们也可以修改这些细节。为了存储修改后的详细信息,我添加了一个名为“发布”的按钮

但是这里的问题是,当我直接在表中选择其他学生时,我更改了一些学生详细信息并且没有单击“发布”时。然后
在选择该学生之前,我需要显示一条警告消息。

我有一个类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

        }
    });

07-26 07:11