首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于Java中JTextField的一个问题

关于Java中JTextField的一个问题
EN

Stack Overflow用户
提问于 2010-12-14 00:13:22
回答 6查看 515关注 0票数 0

在运行我编写的Java类时,我遇到了一个小问题,尽管设计非常简单。我已经创建了一个JPanel,并且在上面添加了四个JTextFields,并且我还在这个JPanel上附加了一个按钮。然后,我将一个ActionListener关联到正在被按下的这个按钮。代码如下:

代码语言:javascript
运行
复制
okButton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) 
    {
       if (imageIdField.getText() == "" && 
           captionField.getText() == "" &&
           creditField.getText() == "" &&
           titleField.getText()== "") 
           {
              mediaXML = "";                        
              results.clear();
              results.put("error1", "more");

           } 
           else
           { ....
           }
    }

奇怪的是,在我按下OK按钮后,我确实在这四个JTextFields中输入了文本,但它仍然会落在IF分支中,就像我没有在这四个字段中的任何一个字段中输入任何文本一样。我已经调试了一段时间了,但是没有任何线索。谁能给我一些提示,比如.getText() == "“是否是测试无输入的有效方法?

提前感谢!

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-12-14 00:19:58

如前所述,使用==是不正确的。为了提高可读性,请尝试:

代码语言:javascript
运行
复制
field.getText().isEmpty()

代码语言:javascript
运行
复制
field.getText().trim().isEmpty()
票数 3
EN

Stack Overflow用户

发布于 2010-12-14 00:15:55

通常情况下,在String上或其他大多数情况下使用==不是一个好主意。它检查对象是否为完全相同的实例,而不是它们是否具有相同的值。"" != new String("")

代码语言:javascript
运行
复制
field.getText().equals("")

或者可能更好:

代码语言:javascript
运行
复制
field.getText().isEmpty()
票数 1
EN

Stack Overflow用户

发布于 2010-12-14 00:16:25

使用getText().equals("")而不是==

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4430873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档