使程序在java中自动添加文本字段

使程序在java中自动添加文本字段,java,swing,awt,jtextfield,Java,Swing,Awt,Jtextfield,也许有一个类似的问题,但我找不到一个 我希望我的程序(awt或swing)自动添加控件(如文本字段) 例如:一个对话框程序有10个输入名字的字段,但我需要11个,所以按下一个按钮就会出现一个新的字段 先谢谢你 以下是您问题的一些有用的副本: 以下是一个使用以下内容的示例: import java.awt.BorderLayout; import java.awt.event.*; import javax.swing.Box; import javax.swing.JButton; i

也许有一个类似的问题,但我找不到一个

我希望我的程序(awt或swing)自动添加控件(如文本字段)

例如:一个对话框程序有10个输入名字的字段,但我需要11个,所以按下一个按钮就会出现一个新的字段


先谢谢你

以下是您问题的一些有用的副本:

以下是一个使用以下内容的示例:

import java.awt.BorderLayout;
import java.awt.event.*;

import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;

public class MultiJComponentsTest extends JFrame
{
    private JButton btnAdd;
    private JPanel centerPanel;
    private Box vBox;

    public MultiJComponentsTest()
    {
        super("The Title");
        btnAdd = new JButton("Add new JTextField!");
        btnAdd.addActionListener(new ActionListener(){

            @Override
            public void actionPerformed(ActionEvent e)
            {
                vBox.add(new JTextField(20));
                pack();
            }

        });
        vBox = Box.createVerticalBox();
        centerPanel = new JPanel();
        JPanel contentPanel = (JPanel) getContentPane();
        contentPanel.setLayout(new BorderLayout());
        contentPanel.add(btnAdd, "South");
        contentPanel.add(centerPanel, "Center");
        centerPanel.add(vBox);
        pack();
    }

    public static void main(String args[])
    {
        SwingUtilities.invokeLater(new Runnable()
        {
            @Override
            public void run()
            {
                new MultiJComponentsTest().setVisible(true);
            }
        });
    }
}