我是学习Java的新手。
我正在创建一个JInternalFrame,其中包含28个矩阵形式的标签。我想在点击&中将标签文字从 - 更改为 + 反之亦然。
我可以逐个向每个标签添加EventListeners。但我想要一些简单的解决方案,其中我不需要为每个标签单独添加eventlisteners。很久以前,我在VisualBasic中的按钮数组上尝试了相同的方法。
答案 0 :(得分:4)
但我想要一些简单的解决方案,我不需要为每个标签单独添加eventlistener
为什么呢?您可以共享MouseListener。然后,您只需在创建标签时将侦听器添加到标签。这是更好的方法,然后尝试在事后搜索点击的标签。
例如:
MouseListener ml = new MouseAdapter()
{
@Override
public void mousePressed(MouseEvent e)
{
JLabel label = (JLabel)e.getComponent();
label.setText( label.getText().equals("-") ? "+" : "-" );
}
}
for (int i = 0; i < 28)
{
JLabel label = new JLabel("-");
label.addMouseListener( ml );
panel.add(label);
}