Java MouseClicked не работает при запуске с AWT Canvas - PullRequest
0 голосов
/ 06 ноября 2019

Для Java-программы мне нужно обнаружить щелчок мыши. Я импортировал import java.awt.event.*;. И запустил это:

    public void mouseClicked(MouseEvent e) 
{
    if (e.getButton() == MouseEvent.BUTTON1) 
    {
        System.out.println("Click position (X, Y):  " + e.getX() + ", " + e.getY());
    }
}

Когда это запустится, я не получаю никакого вывода, когда нажимаю на экран.

Вот как выглядит начало моего класса:

class Drawing extends Canvas implements MouseListener, MouseMotionListener{

Я не уверен, почему это происходит. Я на Mac, и другой пост ( событие JAVA mouseClicked не запускается на Mac ) предполагает, что может быть что-то не так с использованием Mac.

1 Ответ

0 голосов
/ 06 ноября 2019

Согласно https://docs.oracle.com/javase/tutorial/uiswing/events/mouselistener.html

Слушатель должен быть добавлен к компоненту, например кнопке, панели и т. Д.

public class MouseEventDemo implements MouseListener {
    //where initialization occurs:
    //Register for mouse events on blankArea and the panel.
    blankArea.addMouseListener(this);
    addMouseListener(this);
...


public void mouseClicked(MouseEvent e) {
   System.out.println ("Mouse clicked (# of clicks: "
                + e.getClickCount() + ")", e);
}
...