Можно ли добавить MouseMotionListener в BufferedImage?
Я разрабатываю приложение, которое перетаскивает и масштабирует изображение в Jpanel.
Изображение хранится внутри JLabel.
Но когда я добавляю MouseMotionListener на панель, то перетаскивается все окно, и когда я пытаюсь добавить MouseMotionListener, я не могу выбрать стороны изображения для его масштабирования.
Так можно ли напрямую добавить MouseMotionListener в BufferedImage?
С любым компонентом, который я добавляю MouseMotionListener, он не позволяет мне выбирать стороны изображения. стороны означает все направления для масштабирования изображения.
Окно:
addMouseListener(handler);
addMouseMotionListener(handler);
JLabel:
label.addMouseListener(new MouseHandler());
label.addMouseMotionListener(new MouseHandler());
Вот MouseHandler
это класс, определенный для различных операций, таких как mousePressed
, mouseDragged
, mouseMove
, так далее.
Есть идеи, почему он так себя ведет?
1 ответ
BufferedImage
это класс, который поддерживает общие манипуляции с изображениями Его можно использовать в равной степени из интерактивных программ с графическим интерфейсом пользователя и из неинтерактивных программ пакетной обработки без интерфейса пользователя. Присутствие слушателя мыши на чем-то, что не используется в графическом интерфейсе, не имеет смысла, поэтому вы не можете добавить MouseMotionListener
к BufferedImage
,
Вы должны добавить слушателя к компоненту GUI, который показывает изображение вместо этого.