A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. import java.awt.*;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4. import java.awt.event.WindowAdapter;
  5. import java.awt.event.WindowEvent;
  6. import javax.swing.*;
  7. import java.util.Scanner;
  8. public class Convert {
  9.         private JFrame f=null;
  10.         private JTextField t1=null;
  11.         private JTextField t2=null;
  12.         private JButton b=null;
  13.         private JRadioButton r1=null;
  14.         private JRadioButton r2=null;
  15.         private ButtonGroup  bg=null;
  16.         public Convert(){
  17.                 f=new JFrame("字符大小写转换");
  18.                 Container c=f.getContentPane();
  19.         //        c.setLayout(new GridLayout(1,3));
  20.                
  21.                 JPanel p=new JPanel();
  22.         //        p.setLayout(new GridLayout(1,3));
  23.                 p.setBorder(BorderFactory.createTitledBorder("输入字符串再按转换按钮"));
  24.                
  25.                 t1=new JTextField(20);
  26.                 t2=new JTextField(20);
  27.                 b=new JButton("转换");
  28.                 bg=new ButtonGroup();
  29.                 r1=new JRadioButton("大写");
  30.                 r2=new JRadioButton("小写");
  31.                 bg.add(r1);
  32.                 bg.add(r2);
  33.                 b.addActionListener(new ActionListener(){
  34.                         public void actionPerformed(ActionEvent arg0) {
  35.                                 // TODO 自动生成的方法存根
  36.                                 String c=bg.getSelection().getActionCommand();
  37.                                 boolean up=c.equals("大写");
  38.                                 String t=t1.getText();
  39.                                 if(up){
  40.                                         t2.setText(t.toUpperCase());
  41.                                 }else{
  42.                                         t2.setText(t.toLowerCase());
  43.                                 }
  44.                         }
  45.                        
  46.                 });
  47.                 p.add(t1);
  48.                 p.add(b);
  49.                 p.add(r1);
  50.                 p.add(r2);
  51.                 p.add(t2);
  52.                
  53.                 c.add(p);
  54.                 f.setSize(300, 150);
  55.                 f.setVisible(true);
  56.                 f.addWindowListener(new WindowAdapter(){
  57.                         public void windowClosing(WindowEvent e){
  58.                                 System.exit(0);
  59.                         }
  60.                 });
  61.                
  62.         }
  63.         public static void main(String[] args) {
  64.                 // TODO 自动生成的方法存根
  65.                 new Convert();
  66.         }
  67. }
复制代码

1 个回复

正序浏览
我把哥们你的代码测试了一下
发现问题应该是出在了第36行,你调用的是getSelection().getActionCommand();这两个方法,获取组中选择的按钮(getSelection())这个没问题,问题就出在getActionCommand()。
getActionCommand所返回的是“动作命令字符串”,并不是JRadioButton实例化时的文本,所以要应该在实例化后(第30行后)加一个“动作命令字符串”的设置方法r1.setActionCommand("大写");r2.setActionCommand("小写");
这样这个问题就解决了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马