通过 JTextField 循环到 getText 并检查是不是为空
Posted
技术标签:
【中文标题】通过 JTextField 循环到 getText 并检查是不是为空【英文标题】:looping through JTextField to getText and check if empty通过 JTextField 循环到 getText 并检查是否为空 【发布时间】:2021-10-17 06:38:50 【问题描述】:在创建 ArrayList ArrayList<JTextField> textfields = new ArrayList<JTextField>();
后,我试图循环通过 JTextField
我需要检查这些 JTextFields 是否为空,但我收到 AWT-EventQueue-0
错误。
在 ArrayList 中添加所有 JTextFields
// textfields.add(AllTextFields)
遍历 ArrayList
for(int i=0; i<textfields.size(); i++)
if(!textfields.get(i).getText().equals(""))
callFrame();
解释
我在这里要做的就是检查这些 JTextField 中的 at least one
是否为空,如果一个为空,则不要调用另一帧。如果ALL
JTextFields 不为空,则调用新框架。我收到 AWT-EventQueue-0 - NullPointerException。事实上,我没有访问没有指向某物的变量。
【问题讨论】:
查看:***.com/questions/30919644/… 以获得稍微不同的方法。表单上的“提交”按钮默认是禁用的,只有在每个文本字段中输入文本时才会启用。 【参考方案1】:如果我对您的理解正确,那么您的代码将不起作用,因为如果其中一个文本字段不为空(如果所有文本字段都不为空),您将调用另一个框架。我会这样做:
boolean allFilled = true;
for (JTextField textfield : textfields)
String text = textfield.getText();
if (text == null || text.isEmpty())
allFilled = false;
break;
if (allFilled)
// Call the other Frame if every Textfield has a value
callFrame();
在这里您不必循环遍历所有文本字段,因为您只需在找到至少一个空字段时结束循环。
您能否发布完整的 Stacktrace(错误消息)?你只分享了 AWT-EventQueue-0 但这是发生错误的线程名称。
【讨论】:
如果我用布尔值更改循环,我也会遇到同样的错误 在错误堆栈跟踪中,您应该看到发生错误的行。如果它仍然是一个空指针异常,那么您正在尝试访问一个为空的变量。也许您的文本字段之一为 null 或文本字段返回 null 作为文本(不确定,因为我从未使用过 swing)。您还可以尝试调试并查看变量以查看什么是 null。 我正在尝试添加if(textfields.get(i).isEditable == true)
,因此它会检查所有可编辑的文本字段,因为可能在不可编辑的文本字段上循环它的循环时,它将为空。但是我仍然尝试了很多答案,并且显示了相同的错误。我在textfields.get(i).getText().equals("")
是的,那么它可能是以下为空的事物之一: - 列表(文本字段) - 从 get(i) 返回的文本字段 - 从 getText() 返回的文本
我正在尝试使用System.out.println(textfields.get(0).getText();
打印 ArrayList 的第一个元素,但它什么也没显示。也许 ArrayList 是空的,我会仔细检查一下。以上是关于通过 JTextField 循环到 getText 并检查是不是为空的主要内容,如果未能解决你的问题,请参考以下文章
尝试使用 Netbeans 将 Image 添加到 Mysql
java:判断在JTextField中输入的是不是是7位数字
用java做前台 向数据库插入数据是 怎么判断有木有插入进数据库 ?