Mouse Event E (JPanel) Java Help
-
26-09-2019 - |
Вопрос
Я хочу Mouselistener для JPanel внутри JTabbedPane в JFrame ...
Я хочу, чтобы это было распечатать что-то, всякий раз, когда мышь нажат / нажата / нажата.
Я пытался оглянуться, но когда я пытаюсь внедрить его, я получил ошибку в этой строке:
public class GUI implements ActionListener, MouseListener
И это ошибка:
GUI
не абстрактно и не переопределяет абстрактный методmouseExited(java.awt.event.MouseEvent)
вjava.awt.event.MouseListener
Что это обозначает?
PS (бит JPanel / Tab я хочу, называется: DisplayMainPanel)
Большое спасибо.
Решение
JPanel jPanel = new JPanel();
jPanel.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
System.out.println("mouseClicked");
}
public void mouseEntered(java.awt.event.MouseEvent evt) {
System.out.println("mouseEntered");
}
public void mouseExited(java.awt.event.MouseEvent evt) {
System.out.println("mouseExited");
}
public void mousePressed(java.awt.event.MouseEvent evt) {
System.out.println("mousePressed");
}
public void mouseReleased(java.awt.event.MouseEvent evt) {
System.out.println("mouseReleased");
}
});
Другие советы
Ну, вы должны переопределить mouseExit
:
В твоей GUI
класс:
@Override
public void mouseExit(MouseEvent e) { /* Do nothing */ }
Когда все ошибки ушли. Не забудьте yourPanel.addMouseListener(theMouseListener)
:
yourPanel.addMouseListener(theObjectOfTheClassWhichImplementsTheListener);
А затем установите фокус на панель, чтобы быть уверены, что события будут пойманы.
yourPanel.requestFocus();
Не связан с StackOverflow