在运行我编写的Java类时,我遇到了一个小问题,尽管设计非常简单。我已经创建了一个JPanel,并且在上面添加了四个JTextFields,并且我还在这个JPanel上附加了一个按钮。然后,我将一个ActionListener关联到正在被按下的这个按钮。代码如下:
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() == "“是否是测试无输入的有效方法?
提前感谢!
发布于 2010-12-14 00:19:58
如前所述,使用==是不正确的。为了提高可读性,请尝试:
field.getText().isEmpty()或
field.getText().trim().isEmpty()发布于 2010-12-14 00:15:55
通常情况下,在String上或其他大多数情况下使用==不是一个好主意。它检查对象是否为完全相同的实例,而不是它们是否具有相同的值。"" != new String("")。
field.getText().equals("")或者可能更好:
field.getText().isEmpty()发布于 2010-12-14 00:16:25
使用getText().equals("")而不是==
https://stackoverflow.com/questions/4430873
复制相似问题