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

JRadioButton值到JTextArea

江承嗣
2023-03-14
// radio action listener
            ActionListener radioListener = new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {

                    text.setText(e.getActionCommand());


                }
                };

                // motherboard group
                 rb1.addActionListener(radioListener);
                 rb2.addActionListener(radioListener);
                 rb3.addActionListener(radioListener);
                 // cpu group
                 rb4.addActionListener(radioListener);
                 rb5.addActionListener(radioListener);
                 rb6.addActionListener(radioListener);  

我需要一些帮助,当我单击JRadioButton group时,JRadioButton group的值将显示在jtext区域中,用于每个选定的组。我现在一次只能得到一组。谢谢

共有1个答案

上官凯歌
2023-03-14

每次抛出一个单选按钮事件时都覆盖文本区域。尝试使用JTextAre.append()而不是setText。

在任何情况下,您都必须记住ActionListener中单选按钮组的任何状态才能达到预期的行为。

因评论而更新:

这并不完全正确。我没有检查。但它显示了主要方面。首先,最好通过一个具体的类来实现侦听器接口,而不是将其作为AnonuOmys类型传递。在本例中,类RadioButton实现actionListener方法。现在,您可以将任何类型的参数或对象引用传递给listener类。您可以在侦听器方法中使用它。

进一步了解我是如何获得事件来源的。这是通过

JRadioButton source = (JRadioButton)e.getSource();

如果你指定了一个名称或一个id给无线电按钮,你可以检查该名称并以适当的方式做出反应。

下面是示例代码:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.JRadioButton;
import javax.swing.JTextArea;


public class RadioButton implements ActionListener {


boolean group1Clicked = false;
boolean group2Clicked = false;

JRadioButton rb1 = new JRadioButton();
 ...
JTextArea text = new JTextArea();

public RadioButton() {
      rb1.addActionListener(this);

      rb2.addActionListener(this);
      rb3.addActionListener(this);
      ButtonGroup group = new ButtonGroup();
      rb1.setName("rb1");
      rb2.setName("rb2");
      // cpu group
      rb4.addActionListener(this);
      rb5.addActionListener(this);
      rb6.addActionListener(this);  
}


@Override
public void actionPerformed(ActionEvent e) {
  JRadioButton source = (JRadioButton)e.getSource();

  if (source.getName().equals("rb1") ||
      source.getName().equals("rb2") ||
      source.getName().equals("rb3"))  {
      //Changing the state
      if (group1Clicked) {
          group2Clicked = false;
      } else {
          group1Clicked = true;
      }
  }

  if (source.getName().equals("rb4") ||
          source.getName().equals("rb5") ||
          source.getName().equals("rb6"))  {
          //Changing the state
          if (group2Clicked) {
              group1Clicked = false;
          } else {
              group2Clicked = true;
          }
      }

  if (group1Clicked==false || group2Clicked ==false) {
       text.clear();
    } else {
       text.append(e.getActionCommand());
    }


}

};

 类似资料:
  • 我正在尝试实施一个工资系统,但我在更新员工方面遇到了一些问题。我已将员工的性别作为varchar存储在数据库中。当我输入员工id并单击搜索按钮时,我想从数据库中获取该信息,并根据数据以男性/女性单选按钮显示。代码中没有错误。但问题是,当我尝试这样做时,只有男性按钮显示为选中状态,这是默认设置。即使数据库上的数据显示为女性,女性单选按钮也不会被选中。有谁能帮我解决这个问题吗?下面是我的代码。

  • 介绍 (Introduction) JRadioButton类是单选按钮的实现 - 可以选择或取消选择的项目,它向用户显示其状态。 Class 声明 (Class Declaration) 以下是javax.swing.JRadioButton类的声明 - public class JRadioButton extends JToggleButton implements Acc

  • 问题内容: 我想补充到。我用了给定的代码 但是,当我运行此命令时,我将获得另一种颜色的列,并且当我单击单选按钮时,什么也没有发生。我正在使用netbeans。如果我尝试自定义,则不会显示任何内容。给我适当的指导。 问题答案: 如果要编辑表格单元格的值,则必须设置一个。 您应该在渲染器中创建一个单一文件,并在任何地方重复使用,这就是TableCellRenderer的目的。 如果您不打电话,则不需要

  • 主要内容:1 Java JRadioButton的介绍,2 Java JRadioButton的声明,3 Java JRadioButton的构造方法,4 Java JRadioButton的方法,5 Java JRadioButton的案例1,6 Java JRadioButton的案例21 Java JRadioButton的介绍 JRadioButton类用于创建单选按钮。它用于从多个选项中选择一个选项。它广泛用于考试系统或测验中。 应该将其添加到ButtonGroup中,以仅选择一个单选

  • 我想在按钮组中拦截对JRadioButton的点击。更准确地说:当选择JRadioButton A并且用户单击JRadioButton B时,我想显示一个Yes/No选项窗格。只有当用户单击“是”时,才会选择单选按钮B。如果用户单击“否”,则不应更改任何内容。这是不是或者说这是怎么可能的? 谢谢你抽出时间

  • 我正在做作业(请不要替我做作业)。我已经完成了95%。不过,我在这最后一点上遇到了麻烦。我需要在JText区域显示所选的性别。我必须使用JRadioButton进行性别选择。 我知道JradioButton的工作原理不同。我设置了动作监听器和助记符。我想我搞砸了。看来我可能需要整个团队来设定和行动列表。 非常感谢您的帮助。 以下是我的代码(减去我认为不需要的部分,以便其他人无法复制粘贴作业):