ОК, поэтому я делал абсолютно нормальное приложение и у меня были проблемы с MouseMotion и MouseMotionListener: они вообще не вызывались в моем Canvas. Я думал, что это было чем-то, что я добавил Canvas в кадр, но я создал эту тестовую программу и был очень удивлен:
import java.applet.Applet;
import java.awt.event.MouseMotionListener;
import java.awt.event.MouseEvent;
import java.awt.Graphics;
public class testapp extends Applet implements MouseMotionListener {
int x = 40;
public void mouseMoved(MouseEvent e) {
showStatus("mouse moved");
}
public void mouseDragged(MouseEvent e) {
showStatus("mouse dragged");
x++;
repaint();
}
public void paint(Graphics g) {
g.drawString("Hello World!", 40, x); //x SHOULD move it down! ugh...
}
}
Итак, я запустил это, используя замечательный BlueJ runlet для апплетов, и x не увеличивается, когда я нажимаю и тащу свою мышь! То же самое происходит, когда я реализую MouseListener и пытаюсь увеличить переменную внутри одного из реализованных методов.
Должен ли я перезагрузить компьютер? Моя версия JDK не работает? (У меня Java 7 на случай, если это известная ошибка)
Прямо сейчас, я очень запутался, и у меня есть задание, для которого нужны методы, чтобы работать завтра, поэтому любая помощь очень ценится. Спасибо!