在JAVA中能不能实现点单选按钮后面对按钮说明的文字而选中按钮的功能,若能的话,那实现的代码是什么呢?谢谢各位大侠了!

解决方案 »

  1.   

    给你发给完整能用的吧!import java.awt.Dimension;
    import java.awt.Rectangle;
    import java.awt.Toolkit;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;import javax.swing.ButtonGroup;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JRadioButton;public class DBChoose extends JFrame implements ItemListener
    {
    private static final long serialVersionUID = 1L; private JPanel jContentPane = null; // 远程数据库地址类型选择
    private JRadioButton radiobtn_serverip = null; private JRadioButton radiobtn_servername = null; // 单选按钮组
    private ButtonGroup btngrp = null; // @jve:decl-index=0: public String str_url = null; public String str_servername = null; public static String str_serverAddress = null; private JPanel radioPanel = null; private JLabel lab_choose = null;
    public DBChoose()
    {
    super();
    initialize();
    } private void initialize()
    {
    this.setSize(377, 226);
    this.setContentPane(getJContentPane());
    this.setTitle("数据库选择");
    this.setResizable(false);
    //设置窗口位置居中
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    Dimension frameSize = this.getSize();
    if (frameSize.height > screenSize.height)
    {
    frameSize.height = screenSize.height;
    }
    if (frameSize.width > screenSize.width)
    {
    frameSize.width = screenSize.width;
    }
    this.setLocation((screenSize.width - frameSize.width) / 2,
    (screenSize.height - frameSize.height) / 2);
    this.setVisible(true);
    }
    private JPanel getJContentPane()
    {
    if (jContentPane == null)
    { jContentPane = new JPanel();
    jContentPane.setLayout(null);
    jContentPane.add(getRadioPanel(), null);
    jContentPane.add(getLab_choose(), null); }
    return jContentPane;
    }
    private JRadioButton getRadiobtn_serverip()
    {
    if (radiobtn_serverip == null)
    {
    radiobtn_serverip = new JRadioButton();
    radiobtn_serverip.setText("服务器IP地址:");
    radiobtn_serverip.setBounds(new Rectangle(8, 6, 118, 23));
    radiobtn_serverip.setSelected(false);
    radiobtn_serverip.addItemListener(this);
    }
    return radiobtn_serverip;
    } private JRadioButton getRadiobtn_servername()
    {
    if (radiobtn_servername == null)
    {
    radiobtn_servername = new JRadioButton();
    radiobtn_servername.setText("服务器主机名:");
    radiobtn_servername.setBounds(new Rectangle(8, 31, 118, 23));
    radiobtn_servername.setSelected(true);
    radiobtn_servername.addItemListener(this);
    }
    return radiobtn_servername;
    } private ButtonGroup setBtngrp()
    {
    if (btngrp == null)
    {
    btngrp = new ButtonGroup();
    btngrp.add(getRadiobtn_serverip());
    btngrp.add(getRadiobtn_servername());
    } return btngrp;
    } public void itemStateChanged(ItemEvent e)
    {
    if (radiobtn_serverip.isSelected())
    {//添加自己想做的事情
    }
    else if (radiobtn_servername.isSelected())
    {
    // 添加自己想做的事情
    }
    }
    private JPanel getRadioPanel()
    {
    if (radioPanel == null)
    {
    radioPanel = new JPanel();
    radioPanel.setLayout(null);
    radioPanel.setBounds(new Rectangle(35, 61, 135, 60));
    radioPanel.add(getRadiobtn_serverip(), null);
    radioPanel.add(getRadiobtn_servername(), null);
    setBtngrp();
    }
    return radioPanel;
    } public JLabel getLab_choose()
    {
    if (lab_choose == null)
    {
    lab_choose = new JLabel();
    lab_choose.setBounds(new Rectangle(38, 14, 193, 31));
    lab_choose.setText("请选着数据库地址:");
    }
    return lab_choose;
    }
    public static void main(String []args)
    {
    new DBChoose();
    }