gpt4 book ai didi

Java Swing : JButton creates new JTextField(s)

转载 作者:太空宇宙 更新时间:2023-11-04 08:11:48 25 4
gpt4 key购买 nike

你好:)我是 Java Swing 的初学者,我无法通过 google 解决我的问题。我有一个 JPanel,想在按下 JButton 后动态添加 JTextField。稍后我怎样才能从他们那里 getText() 呢?我的代码,注释部分无法正常工作。

变量“计数器”计算面板中有多少个字段。

public class AppPanel extends JPanel {

private JTextField tfData[];
private JButton btAdd;
private int counter = 1;

public AppPanel() {
setLayout(null);

//tfData[counter] = new JTextField();
//tfData[counter-1].setBounds(20, 20, 250, 20);
//add(tfData[counter-1]);

btAdd = new JButton("Add field");
btAdd.setBounds(280, 20, 120, 20);
btAdd.addActionListener(new alAdd());
add(btAdd);
}

class alAdd implements ActionListener {
public void actionPerformed(ActionEvent e) {
//tfData[counter] = new JTextField();
//tfData[counter].setBounds(20, 20+20*counter, 250, 20);
//add(tfData[counter]);
++counter;
}
}
}

最佳答案

由于您已经存储了对文本字段的引用,因此只需使用此数组来查询文本字段的文本即可:

tfData[counter-1].getText();

将显示最后添加的文本字段的文本。

但是你确实应该在之前初始化你的数组,否则你将无法向其中添加任何项目。我认为这是您的主要问题,因为您注释掉了添加代码。

// think about how many text fields you will need (here: 16)
private JTextField tfData[] = new tfData[16];

如果您使用数组,请注意不要突破其边界。但更好use a list正如之前评论中所建议的,因为它动态增长,您不必处理数组边界,甚至可以跳过计数(列表也可以为您做到这一点)。

关于Java Swing : JButton creates new JTextField(s),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11061748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com