gpt4 book ai didi

java - 在JLabel中获取鼠标点击图片时的X和Y位置

转载 作者:行者123 更新时间:2023-11-29 03:53:42 26 4
gpt4 key购买 nike

我使用 ImageIcon 功能在 JLabel 中显示了一个图像。

JLabel 包含在 JPanel 中。

当点击图片时,我想获取鼠标相对于图片的位置。

我试图通过将鼠标监听器添加到包含图片。

显然,即使我用图像的宽度和高度设置 JLabel 的大小,JLabel 似乎会自动拉伸(stretch)到 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();

最佳答案

一切都与布局有关。

参见 this example对于上图。


这个用例似乎需要 GridBagLayoutBoxLayout .

关于java - 在JLabel中获取鼠标点击图片时的X和Y位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7510033/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com