У меня есть изображение, отображаемое внутри JLabel с использованием функции ImageIcon.
JLabel содержится внутри JPanel.
При нажатии на изображение я хочу получить положение мыши относительно изображения.
Я пытаюсь решить эту проблемудобавив слушатель мыши к JLabel, который содержит изображение.
Очевидно, даже если я установлю размер JLabel с шириной и высотой изображения, кажется, что JLabel автоматически растягивается до размера JPanel.
Таким образом, при выполнении кода ниже, если размер изображения меньше, чем JPanel, получение позиции X и Y возвращает нежелательное значение.
Есть ли способ, которым я могу специально ограничить размерJLabel так, чтобы получить положение X и Y позиции мыши будет хорошо работать?
Или лучший способ получить положение мыши относительно изображения?(что было бы лучше)
ImageIcon icon = new ImageIcon(image);
JLabel imageLabel = new JLabel(icon);
imageLabel.setSize(image.getWidth(null), image.getHeight(null));
imageLabel.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
JOptionPane.showMessageDialog(imageLabel, e.getX()+" "+e.getY());
}
});
imageLabel.validate();
panel.add(imageLabel);
panel.validate();