呵呵~~~~你这是java实例一书中的例子,你好好看看书上的解释就明白了

解决方案 »

  1.   

    问题在你的addElement中
    你比较插入的名字与原有的名字时匆略了一种情况
    就是当整个while完成时
    你的if( Compare(x,nextOb))都不成立的时候
    你并没有将这个新的名字加上去
      

  2.   

    to 1楼:你说的那本书我没有。
    to 2楼:你说的好像还不是关键,加了一个else后还是不能解决问题。
    还是要谢谢你们~
      

  3.   

    问题解决:
    /*
            while (f < vect2.size())
             {
               Object nextOb = vect2.elementAt(f);
                 if( Compare(y,nextOb))
                { 
                vect2.insertElementAt(y,f);
                  }
                  f++;
                }*/
    //////////////////////////////
                boolean tomb=true;
                int i=0;
                for(i=0;i<vect2.size();i++){
               Object nextOb = vect2.elementAt(i);
               if( ! Compare(y,nextOb)) tomb=false;
                }
    System.out.println(i);
                if(tomb) vect2.insertElementAt(y,i);
    //////////////////////////////
      

  4.   

    这个我也改了
        public boolean Compare(String m,Object n)//比较两个字符串大小
        {
         String str1 = m;
         Object str2 = n;
         if (str1.compareTo((String)str2)==0)
         {
         return false;
         }
         else 
         {
         return true;
         }
        }
      

  5.   

    还有,清在  public void hh() 方法中添加
    /////////
        frame.addWindowListener(new WindowAdapter(){
                           public void windowClosing(WindowEvent e) {
                                     System.exit(0);
           }});
    //////////
      

  6.   

    谢谢胖子兄,问题解决了,请查收~
    还有一个问题,在textfield中填写一个名字后,可不可通过连续点击鼠标重复加入这个人的名字,现在好像不可以。谢谢~
      

  7.   

    那你把判断去掉就因该可以
        public boolean Compare(String m,Object n)//比较两个字符串大小
        {
         String str1 = m;
         Object str2 = n;
         if (str1.compareTo((String)str2)==0)
         {
         return false;
         }
         else 
         {
         return true;
         }
        }