java - 多个单选按钮的 Action 监听器

标签 java swing netbeans actionlistener jradiobutton

我打算编写一个程序,让用户可以从 8*8 矩阵中进行选择。因为我的声誉低于 10,所以我不能包含图像,但请放心,它只是一个普通的 8*8 矩阵。我计划在我的 Java 程序中使用 8*8=64 个单选按钮将其可视化。用户一次只能选择一个单选按钮,因此这意味着所有 64 个按钮都属于同一按钮组。

现在,我如何管理 Action 监听器?为 64 个单选按钮中的每一个设置 64 个单独的 Action 监听器是不可能的(真的很烦人和无聊)。由于所有 64 个单选按钮都在同一个按钮组中,有什么方法可以设置仅一个事件监听器来检查选择了哪个按钮?

如果我提供的任何信息不清楚,请告诉我:)

PS:我正在使用 Netbeans 设计工具

最佳答案

创建二维JRadioButton数组,如

        JRadioButton[][] jRadioButtons = new JRadioButton[8][];
        ButtonGroup bg = new ButtonGroup();
        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(8, 8));
        for (int i = 0; i < 8; i++) {
            for (int j = 0; j < 8; j++) {
                JRadioButton btn = new JRadioButton();
                btn.addActionListener(listener);
                btn.setName("Btn[" + i + "," + j + "]");
                bg.add(btn);
                panel.add(btn);
                // can be used for other operations
                jRadioButtons[i][j] = btn;
            }
        }

这是所有 JRadioButton 的单个 ActionListener

    ActionListener listener = new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            JRadioButton btn = (JRadioButton) e.getSource();
            System.out.println("Selected Button = " + btn.getName());
        }
    };

关于java - 多个单选按钮的 Action 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17653116/

相关文章:

java - 模拟 org.apache.log4j.Level 类时出现 MissingMethodInvocationException

java - 较小规模的 Java 分布式编程

java - 如何在 Android 中对组和子级可扩展 ListView 进行排序?

Java Swing JButton

java - JOptionPane - 显示我自己的 JDialog 子类的对话框

jsf - 在 Glassfish 中部署 JSF 应用程序时出错

java - 跳过了 46 帧!应用程序可能在其主线程上做了太多工作

java - 如何设置 Java 默认按钮以响应 ENTER 键_released_?

Java TCP/IP Socket 互联网连接问题

java - JSCH channel shell ,输入/输出