删除动态jTextFields的最后一个逗号

时间:2015-05-12 10:16:31

标签: java swing

我正在使用此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可以解决问题,但由于经验不足,我无法实现。如果可能的话,你可以给我一些建议或建议。

提前谢谢。

2 个答案:

答案 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 + "," );
         }
     }
}