gpt4 book ai didi

java - 错误的输入被验证为错误,但表现得好像它是正确的

转载 作者:行者123 更新时间:2023-12-02 07:14:56 29 4
gpt4 key购买 nike

我有一些组件想要检查它们是否已填写。我的代码迭代添加到列表中的每个组件,将其转换为正确的类型,调用 getText方法并检查它是否为空。如果它为空,则将 boolean 值设置为 false 并返回。根据 boolean 值,显示“Yay”(成功)或“Nay”(失败)。作为附加测试,我还打印了 component.toString()每次都失败了。

现在的问题是这样的:每个 component.toString()在每个组件都有文本的情况下调用该方法。无论我的输入如何, boolean 值仍然成功(即使某些字段中没有文本)。

在调试过程中,我发现我的调试窗口 (Eclipse) 中没有一个组件具有“Text”或“getText”字段或类似字段,这可能表明存在问题。

我找不到问题所在,有人可以指点我吗?

boolean success = checkInput();
if (success) {
System.out.println("Yay");
} else {
System.out.println("Nay");
}

检查输入法

private boolean checkInput() {


boolean success = true;
List<Component> components = new ArrayList<Component>();
components.add(txtLeertrajectCode);
components.add(txtLeertrajectTitel);
components.add(txtOmschrijving);
components.add(txtDoelgroep);


for (Component comp : components) {
if (comp instanceof JTextField) {
String curr = ((JTextField) comp).getText().trim();
if ("".equals(curr)) {
System.out.println(comp.toString());
comp.setForeground(Color.RED);
success = false;
} else {
comp.setForeground(Color.BLACK);
}
} else if (comp instanceof JTextArea) {
String curr = ((JTextArea) comp).getText();
if ("".equals(curr)) {
System.out.println(comp.toString());
comp.setForeground(Color.RED);
success = false;
} else {
comp.setForeground(Color.BLACK);
}
}

}

return success;
}
}

输出:

javax.swing.JTextField[...] 
javax.swing.JTextField[...]
javax.swing.JTextArea[...]
javax.swing.JTextField[...]
Yay

编辑:

问题已解决,显然我的文本字段有两次,但在文件中具有相似的名称。显然,检查是在未使用的文本字段上完成的。愚蠢的问题。

最佳答案

也许你应该改变这个:

} else {
System.out.println("Yay");
}

} else {
System.out.println("Nay");
}

关于java - 错误的输入被验证为错误,但表现得好像它是正确的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15054391/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com