Java 如何设置鼠标侦听器,使表只能单击一次?

Java 如何设置鼠标侦听器,使表只能单击一次?,java,swing,jtable,mouseevent,double-click,Java,Swing,Jtable,Mouseevent,Double Click,我已编写了此侦听器的代码: playlistTable.addMouseListener(new MouseAdapter() { private boolean ignoreDoubleClicks = false; public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2 && !ignoreDoubleClicks) {

我已编写了此侦听器的代码:

        playlistTable.addMouseListener(new MouseAdapter() {

        private boolean ignoreDoubleClicks = false;

        public void mouseClicked(MouseEvent e) {
            if (e.getClickCount() == 2 && !ignoreDoubleClicks) {
                this.ignoreDoubleClicks  = true;
                System.out.println(ignoreDoubleClicks);
                JTable target = (JTable)e.getSource();
                int row = target.getSelectedRow();

                videoTableModel = new VideoTableModel(playlistService.getMoviesOfPlaylist(row));
                target.setModel(videoTableModel);
                //TODO enables the table
                //movieTable.setEnabled(false);

                createPlaylist.setEnabled(false);
                setButtonIcon("icons\\playlist_grau.png", createPlaylist, "createPlaylist");

                removePlaylist.setEnabled(false);
                setButtonIcon("icons\\bin_grau.png", removePlaylist, "removePlaylist");

                algoButton.setEnabled(false);
                setButtonIcon("icons\\glyphicons_137_cogwheels_grau.png", algoButton, "algoButton");

                //                  playlistTable.setEnabled(false);

                revalidate();
            }
        }
    });
然而,当我第一次双击播放列表时,我得到了电影。当我用另一个按钮返回并再次双击播放列表时,它不再是可点击的。为什么?

更新

问题是
this.ignoreDoubleClicks=true

但是,为什么不设置为false?

在第一次双击鼠标事件时,您设置了
this.ignoreDoubleClicks=true
,我没有看到任何代码会将其重置回
false
。因为所有代码似乎都被包装在检查if
if
语句中!此.ignoreDoubleClicks
,将其设置为true将永久锁定侦听器。条件的左侧(
e.getClickCount()==2
)可能计算为真,也可能不计算为真,因为右侧为
false
,运算符为逻辑and(&&)。

在第一次双击鼠标事件中,您设置了this.ignoreDoubleClicks=true,我没有看到任何代码会将其重置回
false
。因为所有代码似乎都被包装在检查if
if
语句中!此.ignoreDoubleClicks
,将其设置为true将永久锁定侦听器。条件的左侧(
e.getClickCount()==2
)可能计算为真,也可能不计算为真,因为右侧是
false
,运算符是逻辑运算符,
(&&&&)。您对这种行为有何建议?这取决于此侦听器的目标和想法。当您希望该标志再次开始响应时,请将其设置回false。您对这种行为有何建议?这取决于此侦听器的目标和想法。如果希望该标志再次开始响应,请将其设置回false。