所以,我在我的程序中有JTextfields,但是如果我检查它是否为空,它将使我的代码更长并且无效。有没有比这更简单的代码?
if (t_ipA.getText() == null || t_ipA.getText().trim().isEmpty()) {
// your code here
}
注意:我有:t_ipA .. t_ipD,t_maskA .. t_maskD 有八个JTextfields。
-------编辑--------- 好的,现在我已经解决了我自己的问题。
这是代码,我一直在使用: 这是方法:
private boolean isEmpty(JTextField f) {
if (f==null || f.getText().trim().isEmpty()) {
f.setText("0");
}
return f.getText().trim().isEmpty();
}
这是在actionlistener:
isEmpty(t_ipA);
isEmpty(t_ipB);
isEmpty(t_ipC);
isEmpty(t_ipD);
isEmpty(t_maskA);
isEmpty(t_maskB);
isEmpty(t_maskC);
isEmpty(t_maskD);
但是,我仍然在寻找使用数组列表来简化这个代码。
感谢QBrute,JBNizet和Mureinik
答案 0 :(得分:0)
首先,您可以定义一个封装检查的方法:
private boolean isEmpty(JTextField f) {
return f.getText() == null || f.getText().trim().isEmpty();
}
然后,您可以将所有字段放在列表或数组中,并使用Java 8的流API将条件应用于所有字段。 E.g:
List<JTextFeild> fields = Arrays.asList(t_ipA, t_ipB /* etc... */);
if (fields.stream().allMatch(this::isEmpty)) {
// your code here...
}