source.equal(............比较字符串用equal

解决方案 »

  1.   

    ==是用来比较两个变量的地址是否相同
    equals是用来比较两个变量内容是否相同的
    所以你这里应该用equals
      

  2.   


        if(source.equals("1"))
      

  3.   

    但如果我用getSource()
    if(source==btn[0])也不行啊
      

  4.   

    在Java中 == 是"地址引用相等",也就是是否指向同一对象,
    所以在String的比较中需要的是"值相等",所以要用String中equals(Object obj)方法,这样才能成功,所以改成source.equal("")才行!
      

  5.   

    在jdk1.4中已经重定义了String这个类的==这个符号 ,也就是说对于String来说,==和.equals是同样的效果
      

  6.   

    for(int i=0;i<10;i++)   //用循环初始化
      {  btn[i]=new JButton(tmp.valueOf(i));
         btn[i].addActionListener(this);
      }
    但如果我用getSource()
    if(source==btn[0])也不行啊
    .equals也不行
      

  7.   

    btn[0]是一个JButton对象,source是一个String对象怎么相等?
    是不是搞错了?
      

  8.   


    getSource返回是object来的?请指教,谢谢!
      

  9.   

    不好意思可能我说不清楚,
    当我用getSource()时,source是Object的,不是String
    当我用getActionCommand()时,source才是String的,
    问题是:
    for(int i=0;i<10;i++)   //用循环初始化
      {  btn[i]=new JButton(tmp.valueOf(i));
         btn[i].addActionListener(this);
      }
    如果我用getSource()
    if(source==btn[0])不行,用.equals也不行
    请问为什么?谢谢!
      

  10.   

    我试过了,用if(e.getSource() == btn[0]) {}是肯定可以的
      

  11.   

    public class test extends Applet {
        private JButton[] btn;
        private JTextField jtf = new JTextField(20);
        public void init() {
            btn = new JButton[10];
            MyListener temp = new MyListener();
            for (int i = 0; i < 10; i++) {
                btn[i] = new JButton("btn0" + i);
                this.add(btn[i]);
                btn[i].addActionListener(temp);
            }
            
            this.add(jtf);
        }
        
        private class MyListener implements ActionListener { public void actionPerformed(ActionEvent e) {
    if (e.getSource() == btn[0]) {
                    jtf.setText("0");
    } else if (e.getSource() == btn[1]) {
                    jtf.setText("aaaaaaaaaaaaaaaaaaa");
    } else if (e.getSource() == btn[2]) {
                    jtf.setText("bbbbbbbbbbbbbbbbbbb");
                }else if (e.getSource() == btn[3]) {
                    jtf.setText("ccccccccccccccccccc");
                }else if (e.getSource() == btn[4]) {
                    jtf.setText("ddddddddddddddddddd");
                }else if (e.getSource() == btn[5]) {
                    jtf.setText("eeeeeeeeeeeeeeeeee");
                } else {
                    jtf.setText("gggggggggggggggggg");
                }
    }
            
        }
      

  12.   

    谢谢大家的帮助,原来我的Object犯了低级错误,我真差,谢谢!