Можно ли добавить 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, который показывает изображение вместо этого.

Другие вопросы по тегам