我在添加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个标签并添加了边框但由于某种原因,动作侦听器仅在添加的最后一个标签上被激活.任何人都可以告诉我为什么会这样或者指出我正确的方向吗?
任何帮助表示赞赏.
我在使用 MaterializeCSS 时遇到了显示图标的问题。我正在使用文档中的“入门”,但无论出于何种原因,图标都拒绝显示。下面是我正在使用的代码
<!DOCTYPE html>
<html>
<head>
<!--Import Google Icon Font-->
<link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<!--Import materialize.css-->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.6/css/materialize.min.css">
<!--Let browser know website is optimized for mobile-->
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
</head>
<body>
<nav>
<ul class="hide-on-med-and-down">
<li><a href="#!">First Sidebar Link</a></li>
<li><a href="#!">Second Sidebar Link</a></li>
</ul>
<ul id="slide-out" class="side-nav fixed">
<li class="bold"><a href="#!" class="waves-effect waves-teal">First Sidebar Link</a></li>
<li class="bold"><a href="#!" class="">Second Sidebar Link</a></li>
<li class="no-padding">
<ul class="collapsible collapsible-accordion">
<li>
<a class="collapsible-header waves-effect waves-teal">Dropdown<i class="mdi-navigation-arrow-drop-down"></i></a>
<div class="collapsible-body">
<ul>
<li><a href="#!">First</a></li>
<li><a …Run Code Online (Sandbox Code Playgroud)