В netbeans для компонента автоматически создается прослушиватель мыши.Удаление прослушивателя мыши в netbeans
private void initComponents() {
jLabel9 = new javax.swing.JLabel();
jLabel9.setBackground(new java.awt.Color(150, 192, 206));
jLabel9.setOpaque(true);
jLabel9.setPreferredSize(new java.awt.Dimension(150, 150));
jLabel9.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jLabel9MouseClicked(evt);
}
public void mouseEntered(java.awt.event.MouseEvent evt) {
jLabel9MouseEntered(evt);
}
public void mouseExited(java.awt.event.MouseEvent evt) {
jLabel9MouseExited(evt);
}
});
Проблема в том, как удалить этот прослушиватель для события с щелчком мыши через функцию? Я пытаюсь сделать что-то вроде этого:
void rem(){
jLabel9.removeMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jLabel9MouseClicked(evt);
}
});
}
Затем я вызываю эту функцию, как того требует мой программный поток. Но это не работает. Одна вещь, которую я понял (хотя я не уверен в этом) заключается в том, что это не работает, потому что я не удаляю слушателя через оригинальный адаптер. Вместо этого я создаю новый и пытаюсь удалить оригинальный прослушиватель. Я искал почти все действующие ссылки на google, но никто не помогает.
Посмотрите на эту тему: http://stackoverflow.com/questions/2627946/how-to-remove-mouselistener-actionlistener-on-a-jtextfield –
@ ZsoltÉbel Я уже видел, что , Если вы заметили, здесь создается, используется и затем удаляется новый адаптер мыши. Но моя ситуация другая. Я хочу удалить экземпляр уже созданного адаптера мыши. –
Если вы хотите использовать метод грубой силы, 'JComponent' имеет метод getMouseListeners, который предоставит вам доступ ко всем слушателям, прикрепленным к компоненту, но я бы использовал его с осторожностью – MadProgrammer