0

我已经编写了这个监听器:

        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?

4

1 回答 1

4

在第一次双击鼠标事件时,您设置this.ignoreDoubleClicks = true并且我没有看到任何将其重置为false. 由于所有代码似乎都包含在if检查 if 的语句中!this.ignoreDoubleClicks,因此将其设置为 true 会永久锁定侦听器。条件e.getClickCount() == 2的左侧false (&&).

于 2013-01-26T14:09:28.627 回答