首页 > 解决方案 > 单击一次按钮后如何使一组新的 JTextFields 出现在新行上

问题描述

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class NewTextFields {

    public static void main(String[] args) {

        final int width = 1200;
        final int height = 800;

        JFrame frame = new JFrame("Title");
        JPanel panel = new JPanel();
        JButton btn = new JButton("ADD Field");
        JTextField[] tfield = new JTextField[10];
        GridBagConstraints gbc = new GridBagConstraints();

        frame.setPreferredSize(new Dimension(width, height));
        frame.setMinimumSize(new Dimension(width, height));
        frame.setMaximumSize(new Dimension(width, height));
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocationRelativeTo(null);
        frame.setResizable(false);

        panel.setSize(width, height);
        panel.setLayout(new GridBagLayout());
        frame.add(panel);

        gbc.insets = new Insets(1,1,1,1);


        btn.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                int i;
                for (i = 0; i < 10; i++) {
                    tfield[i] = new JTextField(5);

                    panel.add(tfield[i], gbc);
                    panel.revalidate();

                }

            }
        });

        panel.add(btn, gbc);

        frame.pack();
        frame.setVisible(true);

    }

}

如果有人可以帮助我,我正在尝试在这里测试某些东西我可以在每一行上使用一个文档侦听器吗?我是新手,我不知道该怎么做,只是询问是否可能。

标签: javaswingjbuttonjtextfieldgridbaglayout

解决方案


推荐阅读