先说说你的需求是什么,并且你是怎么用的JTextField?
(JTextField本身没有问题,我是这么认为的)

解决方案 »

  1.   

    如果got3没有经过new,好么got3.getText().equals(null)就会出错,原因是,got3没有初使化,那equels("")与=="",首先是got3有没有初使化,这是先决条件
      

  2.   

    比如说我写个聊天工具,当用户点击发送按钮的时候,我要判断一下输入框中用户是否输入了字符,如果没有输入则不执行发送。输入入框就相当于上面那个got3。
    我把got3放在JPane中,JPane又放在Container中。程序没有任何语法错误和算法错误。
      

  3.   

    我不太了解GUI,是不是JTextField.getText()返回的不是String而是StringBuffer哦
      

  4.   

    这个问题我以前在做jsp的时候也遇到过,不过我获得值是从html中的textfield获得的,
    也是本来想判断是否有输入,但死活不行。
    最后还是通过javascript来实现的,
    真是郁闷~~!
      

  5.   

    if(got3.compareTo("") == 0)
    .............................
    试试看,也许.......
      

  6.   

    这是==和equals()的区别,==用于判断基本类型,equals()用于判断对象类型(但前提是需要重载),textField.getText()返回String对象,所以与null对象用==比较为假,
    got3.getText()==""中后者没定义所以为真,got3.getText().equals("")一样
      

  7.   

    Why don't you try got3.getText().length()? if the length ==0, no input.
      

  8.   

    楼主也可以试试这个方法,一定可以的
    String name;
    JTextField nameField = new JTextField();
    name=nameField.getText();
    if(!name.equals(""))
    {}
    else
    {}
      

  9.   

    呵呵,我觉得还要规避空格的问题,所以在做完了上面判断后还应加上trim()的判断。
      

  10.   

    建议搂主用xxx.getText().trim().length()是不是等于0的方法或者在检查客户端输入的时候用javascript进行判断用户是不是输入为空  这个很方便
      

  11.   

    问题一: 
    String 是对象.对象之间比较用==的话是引用比较.用.equals()才是对的.
    既然楼主定义了JTextField got3=new JTextField();那么got3就不为null所有永远为false问题二: 
    String 是个比较特殊的对象
    可以这样定义
    String a = "i am happy";
    String b = "i am happy";
    那么 a == b 返回 true
    String a = new String("i am happy");
    String b = new String("i am happy");
    那么 a == b 返回 false
      

  12.   

    当TextField没有输入时,getText()返回的是空字符串的对象("")
    所以,用xxx.getText().equals("") 来判断用户是否有输入是完全可以的
      

  13.   

    JTextField got3=new JTextField();
    .......
    if(got3.getText()=="")//永远为真
    或if(got3.getText().equals(""))//永远为真
    上面两句如何理解?!
      

  14.   

    public String getText()Returns the text contained in this TextComponent. If the underlying document is null, will give a NullPointerException. Returns:
    the text 
    Throws: 
    NullPointerException - if the document is null
    See Also:
    setText(java.lang.String)
      

  15.   

    用if(tf.getText().trim().equals(""))不是很好么
    给个exampleimport java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;public class TextFieldTest{
    JFrame frame=new JFrame("TextField Test");
    Container c=frame.getContentPane();
    JTextField tf=new JTextField();
    JButton button=new JButton("ok");
    public TextFieldTest(){
    c.add(tf);
    c.add(button,BorderLayout.SOUTH);
    button.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
    if(tf.getText().trim().equals("")){
    JOptionPane.showMessageDialog(c,"nothing input");
    }else{
    JOptionPane.showMessageDialog(c,tf.getText());
    }
    }
    });
    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    frame.pack();
    frame.setLocation(300,300);
    frame.show();
    }
    public static void main(String[] args){
    new TextFieldTest();
    }
    }
      

  16.   

    if (got3.getText().Length()>0) { ... }说明:getText如果发现底下的文本是null,会抛出NullPointerException,而不是返回null。""的长度为0。对我们文本控件的使用者来说,可以认为它返回的字符串永远不是null。所以一般用""或者length()方法判断用户是否有输入,而不是用null跟它比。"请问java在搞什么飞机?"不是Java搞飞机,是楼主没有理解是怎么回事。
      

  17.   

    if(got3.getText()=="")//永远为真
    或if(got3.getText().equals(""))//永远为真
    上面两句如何理解?用户没有输入任何字符的时候,getText返回"",所以got3.getText().equals("")为真。
    因为Java中字符串是不可变的,且getText内部机制会调用String对象的intern方法,所以同样内容的字符串会指向同一个字符串实例,因此got3.getText()==""也为真。
      

  18.   

    字符串的比较判断一般都用equals.
    用==或许会有错误的!
      

  19.   

    我是说:
    if(got3.getText().equals(""))//永远为真
    不管在输入与不输入下都为真,这是为什么?
      

  20.   

    楼主是不是从另一个帖子拷贝过来的代码啊?那个帖子的楼主一开始是这样写的:JTextField got3=new JTextField();
    got3.setText(null);
    if(got3.getText()==null)
    永远为假。后来说
    JTextField got3=new JTextField();
    got3.setText(null);
    if(got3.getText()=="")
    也不行,if语句永远也得不到真!再后来
    用if(got3.getText().equals(""))永远为真。==========================================================================我真的不知道楼主转贴这段话之前有没有好好看前面是怎么说的,有没有自己想想道理或者做过试验。我来解释一下为什么在原贴中if(got3.getText().equals(""))永远得到真值:原来的代码是这样的:...
    JTextField got3=new JTextField(); // <1>
    got3.setText(null);               // <2>
    if(got3.getText().equals(""))     // <3>
    ...执行到<2>时,setText(null)把原有的内容清空
    执行到<3>时,自然got3的文本是空的,自然getText返回"",自然永远是真。还有什么想不通的么?==========================================================================if(got3.getText().equals(""))//永远为真
    不管在输入与不输入下都为真,这是为什么?不为什么,“不管在输入与不输入下都为真”这句话本身就是假命题。不信你自己做实验。
      

  21.   

    楼主贴过来的例子实在害人不浅,弄得大家糊里糊涂的。我献丑举个清晰点的例子吧:有这样的定义:
    JTextField nameInput = new JTextField();后来有一个事件(比如按钮被按下)触发一段代码,在这段代码中:>>如果用户确实有输入,那么
    nameInput.getText()==null  //为假
    nameInput.getText().equals("")  //也为假>>如果用户没有输入,那么
    nameInput.getText()==null  //仍然为假
    nameInput.getText().equals("")  //为真[结论]
    getText()不管用户有没有输入,都不会返回null值。
    用户有输入时getText().eqauls("")为假;没有输入时返回"",故getText().equals("")为真。[额外的说明]
    setText(null),即传递一个null参数给setText方法,实际的效果是清空文本,而不是把底层的文档对象null掉。另外在取值时,考虑用trim()去掉无用的空格。[可以考虑的实现方法]
    为判断是否有用户输入,有如下途径,为真时说明没有有效的输入:
    getText().trim().euqals("")
    getText().trim().length()==0
    getText().trim()=="" // 最后一个方法也可行是因为string对象默认是intern的,但为了避免带来不必要的混淆,不推荐这样判断。
      

  22.   

    if(got3.getText()=="")//永远为真
    if(got3.getText().equals(""))//永远为真
    大家不要把我想得那么菜好吗,怎么说我也是高级程序员,目前刚刚转到java编程,由于它在实现机制上与VC有较大差别,所以我要一段时间才能适应,而且我还是个新手,我的意思只有Hodex(小何才露尖尖角) 老师明白,其余的人总是在说,因为没有输入,所以getText返回"",所以got3.getText().equals("")为真什么的,注意我说的是永远!!!
    也就是说用户输入了字符的情况下,got3.getText().equals("")还是为真!!!
    希望你们调试一下再回答好吗?还有 noding2001(red) 老师也说了,他也遇到这个问题,说明我不是乱说的!
    Hodex(小何才露尖尖角) 老师的例子我试了,真的行,所以这种方法我会记住的,现在由于刚看java,还没看到trim()方法的运用,还请哪位高手说一下!谢谢。
      

  23.   

    to yangl79(杨):很抱歉,我也没理解你的说法-_-
      另外,不要叫俺“老师”,俺对这个词有点反感,因为俺是所有老师的眼中盯,嘻嘻
      trim的意思 sean_gao(大胃) 已经指出过:去掉无用的空格俺同意sean_gao(大胃)的看法
      

  24.   

    我刚回来,你的代码我收到了,瞄了一遍,发现一个很大的问题:你的winners为什么要setEditable(false)?再一个,你的winners怎么实际上是第一排的编辑框啊?(第一排的说明文字是"Your Picks")是不是搞错了?
      

  25.   

    这是书上的例子,不用管那些JLabel,第一排JTextField框用来打印计算机产生的6个随机数,第二排JTextField框用来接受用户的输入(自已猜的六合彩),如果选中顶上的
    Quick pick框,则由计算机为你下注,选中Personal,则用户自己下注,我要达到的目的就是当用户选中Personal时,在点Play后,判断一下6个输入框中是否都输入了数字,只要有一个没有输入就直接返回,因为没有人下空的六合彩。
    这只是我学习中的练习题,不要管它有没有用。
      

  26.   

    真是不好意思, sean_gao(大胃)一说,我看了一下程序(原来的程序是从光盘里拷贝的,运行也没出错,所以也没有仔细看),果然是源程序出了一点问题,numbers 和 winers应该互换一下位置,这么简单的问题,没想到也会出错,这个程序要是我写的的话,一定不会出这么低级的错误的,不好意思让大家给我解释这么多,其实发现这个问题的时候我也不相信,实在想不到哪儿错了才上网问的。比如
    if(got3.getText().equals(""))//永远为真
    这句,会编程的人看了都会不理解,所以我才说java在搞什么飞机的,其实只是一句气话,我从来没有怀疑过java这种全世界最流行和最有前途的语言!
    刚从VC转到java,第一感觉就是java功能太强大了!以后还向大家学习。
      

  27.   

    今天下午我把源代码发到你们邮箱的那两位高手,你们就不用回,只要有上面sean_gao(大胃)的那一点提示足够了,其实我并不是想像的那么笨哦!开个玩笑!