tangguo

访问动态生成的GUI JTextField对象

java

我正在编写一个包含的程序JButton。每次单击该按钮时,都会将新JTextField的添加到中JPanel。

我的问题是,在用户创建所有JTextFields并用信息填充它们之后,我需要获取每个字段的文本。JTextFields当它们没有实例名称时,如何动态访问它们?有没有一种更好的方法来获取每个文本,而又不知道它们的实例名称。

这是…的actionPerformed事件代码JButton

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

阅读 301

收藏
2020-10-18

共1个答案

小编典典

您说您想从每个字段中获取文本。因此,当您创建新实例时x,为什么不保留它们的集合,例如将添加JTextFields到ArrayList呢?

另外,假设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():
    }
}
2020-10-18