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