单个函数调用单击任何标签JInternalFrame Java Swing

时间:2015-11-29 18:28:13

标签: java swing

我是学习Java的新手。

我正在创建一个JInternalFrame,其中包含28个矩阵形式的标签。我想在点击&中将标签文字从 - 更改为 + 反之亦然。

enter image description here

我可以逐个向每个标签添加EventListeners。但我想要一些简单的解决方案,其中我不需要为每个标签单独添加eventlisteners。很久以前,我在VisualBasic中的按钮数组上尝试了相同的方法。

1 个答案:

答案 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);
}