我正在使用此code:
获得动态添加JTextField
的价值
编辑:
Component[] children = jPanel1.getComponents();
// iterate over all subPanels...
for (Component sp : children) {
if (sp instanceof subPanel) {
Component[] spChildren = ((subPanel)sp).getComponents();
// now iterate over all JTextFields...
for (Component spChild : spChildren) {
if (spChild instanceof JTextField) {
String text = ((JTextField)spChild).getText();
System.out.println(text);
}
}
}
}
我得到的输出文本文件:text1,text2,text3,
现在出现了下一个问题 - "最后一个逗号"。 我发现Guava可以解决问题,但由于经验不足,我无法实现。如果可能的话,你可以给我一些建议或建议。
提前谢谢。
答案 0 :(得分:1)
使用StringJoiner
:
StringJoiner joiner=new StringJoiner(",");
for (Component spChild : spChildren) {
if (spChild instanceof JTextField) {
String text = ((JTextField)spChild).getText();
joiner.add(text);
}
}
outfile.write(joiner.toString());
答案 1 :(得分:0)
我不确定您的spChildren是List
还是Array
,我的假设是List
,因此使用spChildren.size()
,以防万一并Array
spChildren.length
将替换它。
for (int i = 0; i < spChildren.size(); i++) {
if (spChildren.get(i) instanceof JTextField) {
String text = ((JTextField)spChildren.get(i)).getText();
if (i == (spChildren.size() - 1)) {
outfile.write(text);
} else {
outfile.write(text + "," );
}
}
}