这个问题已经困扰我好久了,希望有高手可以帮我解答!谢谢
    我要做一个对话框,是输入学生信息的,其中用单选按钮来选择性别,用JTextField输入学号等,当我输入后想要清空已输入的信息,JTextField的清空可以在ActionListener中用setText("");来实现,但是单选按钮我用setSelected(false);就是不能清空选中状态,希望大家能帮帮我,谢谢了!

解决方案 »

  1.   

    用setSelected(false);应该没有问题吧;下面是我的代码,测试过了,没有问题,可以清空
    package com.monitor1394.tabletest;/*
     * StudentDialog.java
     * 
     * 学生信息输入面板
     *
     * @author monitor
     * Created on 2010-12-23, 17:12:21
     */
    public class StudentDialog extends javax.swing.JDialog {    public StudentDialog(java.awt.Frame parent) {
            super(parent, true);
            initComponents();
        }    @SuppressWarnings("unchecked")
        // <editor-fold defaultstate="collapsed" desc="Generated Code">
        private void initComponents() {        jLabel1 = new javax.swing.JLabel();
            jLabel2 = new javax.swing.JLabel();
            jLabel3 = new javax.swing.JLabel();
            idField = new javax.swing.JTextField();
            nameField = new javax.swing.JTextField();
            boyButton = new javax.swing.JRadioButton();
            sureButton = new javax.swing.JButton();
            clearButton = new javax.swing.JButton();        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);        jLabel1.setText("学号:");        jLabel2.setText("姓名:");        jLabel3.setText("性别:");        boyButton.setText("男");        sureButton.setText("确认");
            sureButton.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    sureButtonActionPerformed(evt);
                }
            });        clearButton.setText("清空");
            clearButton.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    clearButtonActionPerformed(evt);
                }
            });        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(35, 35, 35)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(layout.createSequentialGroup()
                            .addGap(29, 29, 29)
                            .addComponent(sureButton)
                            .addGap(18, 18, 18)
                            .addComponent(clearButton))
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel3)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(boyButton))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel2)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(nameField))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel1)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(idField, javax.swing.GroupLayout.PREFERRED_SIZE, 157, javax.swing.GroupLayout.PREFERRED_SIZE))))
                    .addContainerGap(43, Short.MAX_VALUE))
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(21, 21, 21)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel1)
                        .addComponent(idField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel2)
                        .addComponent(nameField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel3)
                        .addComponent(boyButton))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 17, Short.MAX_VALUE)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(clearButton)
                        .addComponent(sureButton))
                    .addContainerGap())
            );        pack();
        }// </editor-fold>    private void clearButtonActionPerformed(java.awt.event.ActionEvent evt) {
            idField.setText(null);
            nameField.setText(null);
            boyButton.setSelected(false);
        }    private void sureButtonActionPerformed(java.awt.event.ActionEvent evt) {
            //do something
        }    // Variables declaration - do not modify
        private javax.swing.JRadioButton boyButton;
        private javax.swing.JButton clearButton;
        private javax.swing.JTextField idField;
        private javax.swing.JLabel jLabel1;
        private javax.swing.JLabel jLabel2;
        private javax.swing.JLabel jLabel3;
        private javax.swing.JTextField nameField;
        private javax.swing.JButton sureButton;
        // End of variables declaration
    }
      

  2.   

    我把我自己的代码发上来给大家分析一下吧
    //录入界面
    import javax.swing.*;
    import javax.swing.plaf.basic.BasicBorders.RadioButtonBorder;import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;//public class StudentSituation extends JFrame{
    public class StudentSituation extends JFrame{

    JTextField jtfNum = new JTextField();
    JButton jbAdd = new JButton("录入");

    JTextField jtfName = new JTextField("");
    JButton jbCancel = new JButton("取消");
    JPanel jpSex = new JPanel();
    JRadioButton jrbMan = new JRadioButton("男");
    JRadioButton jrbWoman = new JRadioButton("女");
    JTextField jtfMajor = new  JTextField("");
    JTextField jtfAddr = new JTextField("");
    JTextField jtfBirth = new JTextField("");

    public StudentSituation(){
    GridLayout mainInquestFrame = new GridLayout(8,3,5,5);
    setLayout(mainInquestFrame);
    ActionListener okListener = new okListener();
    jbAdd.addActionListener(okListener);
    ActionListener cancellistener = new cancelListener();
    jbCancel.addActionListener(cancellistener);
    //jbCancel.addActionListener(cancelListener);
    add(new JLabel());
    add(new JLabel());
    add(new JLabel());
    add(new JLabel("          输入要查询的学号:"));
    //JTextField jtfNum = new JTextField();
    add(jtfNum);
    //JButton jbAdd = new JButton("录入");
    add(jbAdd);
    add(new JLabel("          姓名:"));
    //JTextField jtfName = new JTextField("");

    add(jtfName);
    //JButton jbCancel = new JButton("取消");
    add(jbCancel);

    add(new JLabel("          性别:"));

    ButtonGroup bgSex = new ButtonGroup();
    //JPanel jpSex = new JPanel();
    //JRadioButton jrbMan = new JRadioButton("男");
    //JRadioButton jrbWoman = new JRadioButton("女");
    bgSex.add(jrbMan);
    bgSex.add(jrbWoman);
    jpSex.add(jrbMan,true);
    jpSex.add(jrbWoman);
    //jpSex.setEnabled(false);
    add(jpSex);

    //jrbMan.setSelected(true);
    jrbMan.setSelected(false);
    add(new JLabel());

    add(new JLabel("          所学专业:"));
    //JTextField jtfMajor = new  JTextField("");
    add(jtfMajor);
    add(new JLabel());

    add(new JLabel("          家庭住址"));
    //JTextField jtfAddr = new JTextField("");
    add(jtfAddr);
    add(new JLabel());

    add(new JLabel("          出生日期"));
    add(jtfBirth);
    add(new JLabel());

    }
    private class okListener implements ActionListener{
    public void actionPerformed(ActionEvent e){

    StudentManager.stuInfo[StudentManager.s] = new StudentInfo();
    StudentManager.stuInfo[StudentManager.s].setNum(jtfNum.getText());
    StudentManager.stuInfo[StudentManager.s].setName(jtfName.getText());
    if(jrbMan.isSelected())
    StudentManager.stuInfo[StudentManager.s].setSex(true);
    else
    StudentManager.stuInfo[StudentManager.s].setSex(false);

    StudentManager.stuInfo[StudentManager.s].setMajor(jtfMajor.getText());
    StudentManager.stuInfo[StudentManager.s].setAddr(jtfAddr.getText());
    StudentManager.stuInfo[StudentManager.s].setBirth(jtfBirth.getText());
    System.out.println(jtfNum.getText() + jtfName.getText() + 
    jtfMajor.getText());

    StudentManager.s++;
    }
    }
    private class cancelListener implements ActionListener{
    public void actionPerformed(ActionEvent e){
    jtfNum.setText(null);
    jtfName.setText(null);
    jrbMan.setSelected(false);
    jrbWoman.setSelected(false);//!!!!!!!就是这里了!
    jtfMajor.setText(null);
    jtfAddr.setText(null);
    jtfBirth.setText(null);

    }
    }

    }
      

  3.   

    ButtonGroup的原因
    要加一句
    bgSex.clearSelection();
    不过为了这样要把你的
    bgSex的定义放到类的定义部分import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;import javax.swing.ButtonGroup;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JRadioButton;
    import javax.swing.JTextField;public class StudentSituation extends JFrame { JTextField jtfNum = new JTextField();
    JButton jbAdd = new JButton("录入"); JTextField jtfName = new JTextField("");
    JButton jbCancel = new JButton("取消");
    JPanel jpSex = new JPanel();
    ButtonGroup bgSex = new ButtonGroup();
    JRadioButton jrbMan = new JRadioButton("男");
    JRadioButton jrbWoman = new JRadioButton("女");
    JTextField jtfMajor = new JTextField("");
    JTextField jtfAddr = new JTextField("");
    JTextField jtfBirth = new JTextField("");

    public static void main(String[] args) {
    new StudentSituation().setVisible(true);
    } public StudentSituation() {
    GridLayout mainInquestFrame = new GridLayout(8, 3, 5, 5);
    setLayout(mainInquestFrame);
    ActionListener okListener = new okListener();
    jbAdd.addActionListener(okListener);
    ActionListener cancellistener = new cancelListener();
    jbCancel.addActionListener(cancellistener);
    add(new JLabel());
    add(new JLabel());
    add(new JLabel());
    add(new JLabel(" 输入要查询的学号:"));
    // JTextField jtfNum = new JTextField();
    add(jtfNum);
    // JButton jbAdd = new JButton("录入");
    add(jbAdd);
    add(new JLabel(" 姓名:"));
    // JTextField jtfName = new JTextField(""); add(jtfName);
    // JButton jbCancel = new JButton("取消");
    add(jbCancel); add(new JLabel(" 性别:")); bgSex.add(jrbMan);
    bgSex.add(jrbWoman);
    jpSex.add(jrbMan, true);
    jpSex.add(jrbWoman);
    // jpSex.setEnabled(false);
    add(jpSex); // jrbMan.setSelected(true);
    jrbMan.setSelected(false);
    add(new JLabel()); add(new JLabel(" 所学专业:"));
    // JTextField jtfMajor = new JTextField("");
    add(jtfMajor);
    add(new JLabel()); add(new JLabel(" 家庭住址"));
    // JTextField jtfAddr = new JTextField("");
    add(jtfAddr);
    add(new JLabel()); add(new JLabel(" 出生日期"));
    add(jtfBirth);
    add(new JLabel()); } private class okListener implements ActionListener {
    public void actionPerformed(ActionEvent e) { StudentManager.stuInfo[StudentManager.s] = new StudentInfo();
    StudentManager.stuInfo[StudentManager.s].setNum(jtfNum.getText());
    StudentManager.stuInfo[StudentManager.s].setName(jtfName.getText());
    if (jrbMan.isSelected())
    StudentManager.stuInfo[StudentManager.s].setSex(true);
    else
    StudentManager.stuInfo[StudentManager.s].setSex(false); StudentManager.stuInfo[StudentManager.s].setMajor(jtfMajor
    .getText());
    StudentManager.stuInfo[StudentManager.s].setAddr(jtfAddr.getText());
    StudentManager.stuInfo[StudentManager.s].setBirth(jtfBirth
    .getText());
    System.out.println(jtfNum.getText() + jtfName.getText()
    + jtfMajor.getText()); StudentManager.s++;
    }
    } private class cancelListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
    jtfNum.setText(null);
    jtfName.setText(null);
    jrbMan.setSelected(false);
    jrbWoman.setSelected(false);// !!!!!!!就是这里了!
    jtfMajor.setText(null);
    jtfAddr.setText(null);
    jtfBirth.setText(null);
    bgSex.clearSelection();
    }
    }}
      

  4.   

    百度到此、受教了、3Q。。sunyiz