java - 确认对话框多次出现

标签 java swing jtable joptionpane listselectionlistener

我在 addListSelectionListener 中有一个确认对话框。当我在表中选择一行时会触发此事件。然后出现确认对话框,在我单击"is"或“否”后,它继续出现!

这是我的代码。

public Reference() {
    initComponents();
    fillTable();
    jTable1.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
        public void valueChanged(ListSelectionEvent e) {
            int prompt = JOptionPane.showConfirmDialog(null, "Are you sure you want to Check Out this item?", "Warning", JOptionPane.YES_NO_OPTION);
            if (prompt == 0) {
                String accessNo = jTable1.getValueAt(jTable1.getSelectedRow(), 0).toString();
                String query = "delete from reference where accessNo=" + accessNo + "";
                if (DB.executeNonQuery(query) > 0) {
                    JOptionPane.showMessageDialog(null, "Check out Successfull!");
                    fillTable();
                } else {
                    JOptionPane.showMessageDialog(null, "Check out Failed!");
                }
            }
        }
    });
}

最佳答案

确保 ListSelectionListener 中的值没有调整

public void valueChanged(ListSelectionEvent e) {
   if(!e.getValueAdjusting()) {
      ...
   }
}   

引用号:How to Write a List Selection Listener

关于java - 确认对话框多次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18421058/

相关文章:

java - 试图将字符串分解为列表

java - 为 JLabel 设置背景图像后,如何在图像上显示文本?

java - 从按钮启动 JFrame

Java JTable 排序不适用于一列

java - 基于复选框 JTable 使特定单元格可编辑

java - tomcat 上的 Vaadin Web 应用程序仅为所有用户创建一个 webapp 实例

java - 使用 Servlet 的 GWT 文件上传

java - 使用 Java JTable 从中间单元格中删除水平边框

java - 如何像 Chrome 或 Firefox 一样进行增量软件更新和重启

Java Swing 制作具有自定义尺寸的盒子