[英]Get value that been selected from radio button in java
import javax.swing.*;
import java.awt.*;
public class RadioButtonTest extends JFrame {
private JTextField jtfAnswer = new JTextField(10);
private JRadioButton jrbMale = new JRadioButton("Male");
private JRadioButton jrbFemale = new JRadioButton("Female");
private JButton jbSubmit = new JButton("Submit");
public RadioButtonTest(){
setLayout(new GridLayout(5,1));
ButtonGroup group = new ButtonGroup();
group.add(jrbMale);
group.add(jrbFemale);
add(new Label("Select gender:"));
add(jrbMale);
add(jrbFemale);
add(jtfAnswer);
add(jbSubmit);
setTitle("Radio Button");
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocation(200, 200);
setSize(150, 150);
setVisible(true);
}
public static void main(String[] args) {
new RadioButtonTest();
}
}
我知道應該添加一個actionlistener
來獲取所選的值,但是我應該在actionlistener
編寫什么內容?
我知道應該添加一個
actionlistener
來獲取所選的值,但是我應該在actionlistener
編寫什么內容?
在ActionListener
您可以詢問誰是動作事件的來源,然后根據需要設置文本字段的文本:
ActionListener actionListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() instanceof JRadioButton){
JRadioButton radioButton = (JRadioButton) e.getSource();
if(radioButton.isSelected()){
jtfAnswer.setText(radioButton.getText());
}
}
}
};
jrbMale.addActionListener(actionListener);
jrbFemale.addActionListener(actionListener);
注意建議讀取EventObject.getSource()
你必須在你想聽的項目上調用addActionListener()
,在這種情況下,你似乎想在你的提交按鈕上調用它。 作為參數傳遞的動作偵聽器將具有您要執行的代碼。 看看教程:
http://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html
對於每個表單項,您必須查看API以了解要調用哪種方法來獲取正確的值。 例如: getText()
或isSelected()
。
像這樣創建自己的動作列表器:
class CustomActionListener implements ActionListener{
private JTextField textField;
private JRadioButton btn;
public CustomActionListener( JRadioButton btn, JTextField field){
this.btn = btn;
this.textField = field;
}
@Override
public void actionPerformed(ActionEvent arg0) {
this.textField.setText( this.btn.getText() );
}
}
然后將其添加到您的單選按鈕:
jrbMale.addActionListener( new CustomActionListener( jrbMale, jtfAnswer ) );
jrbFemale.addActionListener( new CustomActionListener( jrbFemale, jtfAnswer ) );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.