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

标签 java swing

我刚开始学习 Java。

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

enter image description here

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

最佳答案

But I want some simple solution in which I don't need to add eventlisteners for each label individually

为什么?您可以共享 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);
}

关于java - 单击任何标签时调用单个函数 JInternalFrame Java Swing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33986355/

相关文章:

java - 如何在 Mac 上恢复已删除的 java 文件?

java - 无法解析滑动菜单 fragment 中的符号 'TabLayout'

java - 如果 JTextField 为空,则抛出错误

java - 如何将 BufferedImage 绘制到 JPanel

java - 刷新 Swing 图形用户界面

java - JTextArea和JScrollBar的交互问题

java - 使用java将英国邮政编码分成两个主要部分

Java:如果这是instanceof Something,则显示仅属于Something的变量?

java - 如何获取变量类型?

java - 在 Swing 中拖放以订购项目