在Oliver Schmidt的帮助下,我可以通过动态添加jTextFields
来获取文字。
现在我有jPanel1
与Netbeans生成的jTextField1
:
jTextField1 = new javax.swing.JTextField();
jPanel1.add(jTextField1);
jPanel1.setLayout(new org.jdesktop.swingx.VerticalLayout());
同时AddButton
将动态jTextFields
添加到jPanel1
:
jPanel1.add(new subPanel());
pack();
我遇到的问题是当我按下SaveButton时,我得不到有序的输出文本。
for (Component spChild : spChildren) {
if (spChild instanceof JTextField) {
String text = ((JTextField)spChild).getText();
System.out.println(jTextField1.getText()); //I think this code is wrong
System.out.println(text);
例如,如果值为:
jTextField1
:1,
动态JTextFields
:2,3。
输出我重复jTextField1
:
1
2
1
3
所需的输出是:
1
2
3
我不知道如何避免这个问题。
答案 0 :(得分:0)
你是对的,你需要从你的循环中删除jTextField1,然后将它打印在循环上方,然后遍历动态文本框。
// Move jTextField1 to print before your print the dynamic JTextBoxes
System.out.println(jTextField1.getText());
for (Component spChild : spChildren) {
if (spChild instanceof JTextField) {
String text = ((JTextField)spChild).getText();
System.out.println(text);