gpt4 book ai didi

java - 仅在循环中创建的最后一个 JLabel 上检测到 MouseListener

转载 作者:行者123 更新时间:2023-12-02 13:24:23 26 4
gpt4 key购买 nike

我在将 MouseListeners 添加到在循环内创建的一定数量的 Jlabel 时遇到问题。当用户将鼠标悬停在标签上时,我正在创建的程序需要更改 JLabel 的图标。

我创建了一个 for 循环来初始化全局声明的标签、设置边框、添加鼠标监听器并将标签添加到面板。

JLabel label;
for(int i = 0; i < 20; i++)
{
label = new JLabel();
label.setBorder(new LineBorder(Color.BLACK));
label.setMouseListener(this);
panel.add(label);
}
container.add(panel);

然后在我的鼠标监听器中我有

public void mouseEntered(MouseEvent e)
{
if(e.getSource().equals(label))
{
label.setIcon(image);
}
}

这似乎工作正常,它向框架添加了 20 个标签并添加了边框,但由于某种原因, Action 监听器仅在添加的最后一个标签上被激活。谁能告诉我为什么会发生这种情况或请指出我正确的方向?

感谢任何帮助。

最佳答案

((JLabel)e.getSource()).setIcon(image); ?

关于java - 仅在循环中创建的最后一个 JLabel 上检测到 MouseListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8327781/

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