当前位置: 首页 > 知识库问答 >
问题:

多个单选按钮的操作监听器

曹鹏海
2023-03-14

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

现在,我如何管理动作监听器?为64个单选按钮中的每一个设置64个单独的动作监听器是不可能的(真的很无聊)。由于所有64个单选按钮都在同一个按钮组中,我是否可以只设置一个事件侦听器来检查选择了哪个按钮?

如果我给出的任何信息不清楚,请让我知道:)

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

共有3个答案

邓星光
2023-03-14

我认为您正在实现这样的单选按钮:

JRadioButton radioButton = new JRadioButton("TEST");

如果您这样做,您必须使用以下语句为每个按钮设置一个ActionListener(例如在for循环中初始化和设置ActionListener):

radioButton.addActionListener(this)(如果您在同一个类中实现ActionListener)

最后,你可以去你的actionPer的(Action事件e)方法,用e.getSource获取源代码,然后做一些事情,比如如果还有的话,得到正确的无线电按钮:

if(e.getSource == radioButton1)
{
  // Action for RadioButton 1
}
else if(e.getSource == radioButton2)
{
  // Action for RadioButton 2
}
...
宓毅庵
2023-03-14

动作侦听器会被传递一个ActionEvent。您可以创建一个侦听器,将其绑定到所有按钮,并使用< code>getSource()检查事件源:

void actionPerformed(ActionEvent e) {
   Object source = e.getSource();
   ...
}
颛孙英才
2023-03-14

创建二维JRadoButton数组,如

        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;
            }
        }

这是所有JRadoButton的单个ActionListener

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

  • 我想根据单选按钮的选择设置文本框的可编辑选项?如何对单选按钮上的动作监听器进行编码?

  • 问题内容: 我在设计代码时遇到麻烦。我有3个不在按钮组中的按钮。我想-基于选定的按钮- 执行一项操作。现在,该操作需要修改类中的对象。这意味着我不能使用内部类,因为它无法访问外部类。如果我可以将事件侦听器添加到按钮组,这会容易得多,但是如我所见,我将需要每个单选按钮的事件处理程序,这是否正确?如果没有,我该怎么办?谢谢 一个简单的例子 问题答案: 您可以为所有按钮设置相同的侦听器。 伪代码:

  • 我有一个有许多按钮的程序,所有这些按钮都将执行相同的功能。我想知道是否有办法将一个侦听器附加到程序中所有现有的JButton。

  • 我是网络编程的新手,我真的需要你的帮助。我有一个带有几个单选按钮的表单,我想通过一个ajax帖子将它们插入mysql。我可以为一个按钮,但为多个,我不知道如何做。 这是我的html和jQuery的一部分: 下面是我在MySQL中插入按钮的方法: 我尝试为每个按钮创建一个var,但没有成功。我如何在php中发布所有的值,我应该在我的ajax和php中改变什么?谢谢! 这就是我执行.php的方法

  • 本文向大家介绍layui监听工具栏的实例(操作列表按钮),包括了layui监听工具栏的实例(操作列表按钮)的使用技巧和注意事项,需要的朋友参考一下 废话不多说,直接上代码吧! 以上这篇layui监听工具栏的实例(操作列表按钮)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。