1
我有一个JInternalFrame,当我的JTable被双击时,我想要显示一个JOptionPane。我在网上看了看四周,发现这样做的唯一方法是重写的mousePressed()方法,这是我做的:如何删除超级鼠标监听器?
tblJobs.addMouseListener (new MouseAdapter() {
@Override
public void mousePressed (MouseEvent e) {
JTable tbl = (JTable)e.getSource();
int row = tbl.rowAtPoint(e.getPoint());
if (e.getButton() == MouseEvent.BUTTON1 && row != -1) {
if (e.getClickCount() == 2) {
JOptionPane.showMessageDialog(null, "Double click detected");
}
}
}
});
的事情是,我也有一个按钮隐藏框架,当框架被隐藏并重新显示时,我发现双击我的JTable时,JOptionPane显示两次。 JOptionPane显示的次数似乎随着我隐藏和显示帧的次数而增加。我的猜测是,当我隐藏并重新显示帧时,mouseListener一次又一次地被调用。有没有办法删除以这种方式添加的mouseListener?或者有另一种方法来阻止JOptionPane多次显示?而且,如果我的代码在任何方面都很愚蠢,请随时告诉我! :) 提前致谢!
'或者是有另一种方式从显示不止一次?''== tblJobs.removeMouseListener(...)'后,代码行'JOptionPane.showMessageDialog(停止的JOptionPane null,“Dou ...' – mKorbel
as aside double click is'XxxTableCellEditor'的加速器 – mKorbel
我试着把removeMouseListener放在那里,除非我隐藏并重新显示帧,否则我不能再次双击。另外,如何使用xxxTableCellEditor? – Grandevox