访问动态生成的GUI JTextField对象

Chr*_*tis 0 java dynamic instance jpanel jtextfield

我正在写一个包含a的程序JButton.每次单击该按钮时,JTextField都会向a添加一个新按钮JPanel.

我的问题是,在用户创建了所有内容JTextFields并用信息填充后,我需要获取每个字段的文本.我怎样才能访问JTextFields它们动态生成的时间,因为它们没有实例名称?有没有更好的方法来获取每个文本,而不知道他们的实例名称.

这是...... actionPerformed事件的代码JButton

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    JTextField x = new JTextField();
    x.setColumns(12);
    p.add(x); 
    validate();
}
Run Code Online (Sandbox Code Playgroud)

wat*_*ios 9

你说你想从每个字段中获取文本.因此,当您创建新实例时x,为什么不保留它们的集合,例如添加JTextFieldsArrayList

或者,假设p是a JPanel,你应该能够得到所有孩子,这JTextFields就是你要添加的孩子.尝试使用getComponents()这样......

Component[] children = p.getComponents();
for (int i=0;i<children.length;i++){
    if (children[i] instanceof JTextField){
        String text = ((JTextField)children[i]).getText():
    }
}
Run Code Online (Sandbox Code Playgroud)