Java JRadioButton值到JTextArea
我需要一些帮助,当我单击JRadioButton组时,JRadioButton组的值将显示在JTextArea中,用于每个选定的组。我现在一次只能得到一组。Java JRadioButton值到JTextArea,java,swing,Java,Swing,我需要一些帮助,当我单击JRadioButton组时,JRadioButton组的值将显示在JTextArea中,用于每个选定的组。我现在一次只能得到一组。 谢谢每次抛出一个单选按钮事件时,您都会覆盖文本区域。 尝试使用JTextAre.append()而不是setText 在任何情况下,您都必须记住ActionListener中单选按钮组的任何状态,才能达到预期的行为 因评论而更新: 这并不完全正确。我没有检查它。但它显示了主要方面。 首先,最好通过一个具体的类来实现侦听器接口,而不是 kus
谢谢每次抛出一个单选按钮事件时,您都会覆盖文本区域。 尝试使用JTextAre.append()而不是setText 在任何情况下,您都必须记住ActionListener中单选按钮组的任何状态,才能达到预期的行为 因评论而更新: 这并不完全正确。我没有检查它。但它显示了主要方面。 首先,最好通过一个具体的类来实现侦听器接口,而不是 kust将其作为一个无意义的类型传递。在这种情况下,类RadioButton实现actionListener方法。现在,您可以将任何类型的参数或对象引用传递给侦听器类。Annd您可以在侦听器方法中使用它 进一步了解我是如何获得事件来源的。这是通过
// 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);
如果您为单选按钮指定了名称或id,您可以检查该名称并作出反应
以适当的方式
下面是示例代码:
JRadioButton source = (JRadioButton)e.getSource();
}) 组的值或从组中选择的
JRadioButton
的值?但是现在我所做的每一个选择都会附加到文本区域。我需要的是当我做一个选择时,只需要将选择附加到文本区域,然后再添加一个,依此类推。是的,这就是问题所在。所以你需要记住美国。您需要检查之前是否已选择了两个无线组。如果是这样,你必须清除文本区域。你能帮助我并举例说明我将如何做。你能帮助我举例说明如何实施如何检查每个组的状态吗
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());
}
}