2013-08-22 4 views
1

Я разрабатываю приложение, которое перетаскивает и масштабирует изображение в Jpanel.Можно ли добавить MouseMotionListener в BufferedImage?

Изображение хранится внутри JLabel.

Но когда я добавляю MouseMotionListener к панели, тогда все окно перетаскивается, и когда я пытаюсь добавить MouseMotionListener, я не могу выбрать стороны изображения, чтобы масштабировать его.

Могу ли я напрямую добавить MouseMotionListener в BufferedImage?

С любым компонентом я добавляю MouseMotionListener, он не позволяет мне выбирать стороны изображения. стороны есть все направление для масштабирования изображение.

Окно:

 addMouseListener(handler); 
     addMouseMotionListener(handler); 

JLabel:

 label.addMouseListener(new MouseHandler()); 
     label.addMouseMotionListener(new MouseHandler()); 

Здесь MouseHandler класс определен для различных операций, как mousePressed, mouseDragged, mouseMove и т.д.

Любая идея, почему это так себя вести?

+1

Почему вы не ставите MouseMotionListener в JLabel? – Gerret

+0

@Gerret - я добавил его в JLabel, но это не работает, потому что, когда я пытаюсь выбрать любой угол или направление изображения, это не сработает, потому что я применил его на JLabel и Jlabel в JPanel, поэтому, где координата JLabel, я не знаю. –

+0

Как разместить изображение непосредственно на панели ... – Gerret

ответ

1

BufferedImage - это класс, который поддерживает общие манипуляции с изображениями. Его можно использовать в равной степени из интерактивных программ с графическим интерфейсом пользователя и из неинтерактивных программ пакетной обработки без пользовательского интерфейса. Наличие прослушивателя мыши над чем-то, что не используется в графическом интерфейсе, не имеет смысла, поэтому вы не можете добавить MouseMotionListener в BufferedImage.

Вы должны добавить слушателя к компоненту GUI, который отображает изображение вместо этого.

Смежные вопросы