Ter*_*ryN 2 java user-interface swing jlabel mouselistener
我在添加MouseListeners到Jlabels循环内创建的一定数量的问题时遇到了问题.我正在创建的程序需要JLabel在用户将鼠标悬停在标签上时更改a的图标.
我创建了一个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);
Run Code Online (Sandbox Code Playgroud)
然后我的老鼠听众
public void mouseEntered(MouseEvent e)
{
if(e.getSource().equals(label))
{
label.setIcon(image);
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎工作正常,它为帧添加了20个标签并添加了边框但由于某种原因,动作侦听器仅在添加的最后一个标签上被激活.任何人都可以告诉我为什么会这样或者指出我正确的方向吗?
任何帮助表示赞赏.