Я хочу добавить текстовое поле, когда я нажал кнопку «добавить». Но не работает. Помоги мне - PullRequest
0 голосов
/ 09 июля 2020

это мой код. Я хочу, чтобы пользователь мог добавлять новое текстовое поле по своему усмотрению, но он может добавить только одно текстовое поле. будет ли l oop for Participant работать?

import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JTextArea;
import java.awt.Color;
import java.awt.SystemColor;


    public class General {


        private JFrame frame;
        private JTextField textFirst;

        /**
         * Launch the application.
         */
    public static void main(String[] args) {

            EventQueue.invokeLater(new Runnable() {
                public void run() {
                    try {
                        General window = new General();
                        
                      window.frame.setVisible(true);
                    
                       } catch (Exception e) {
                        e.printStackTrace();
                    

                     }
                }
            });
        }

        /**
         * Create the application.
         */
        public General() {
            initialize();


        }

        /**
         * Initialize the contents of the frame.
         */
        private void initialize() {
            frame = new JFrame();
            frame.setBounds(100, 100, 450, 300);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.getContentPane().setLayout(null);
            
            JLabel lblInsertParticipantsTerm = new JLabel("Insert Participants Term :");
            lblInsertParticipantsTerm.setFont(new Font("Tahoma", Font.BOLD, 12));
            lblInsertParticipantsTerm.setBounds(34, 32, 169, 14);
            frame.getContentPane().add(lblInsertParticipantsTerm);
            
            textFirst = new JTextField();
            textFirst.setBounds(23, 52, 180, 20);
            frame.getContentPane().add(textFirst);
            textFirst.setColumns(10);
            
            JButton button = new JButton("ADD");
            button.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) {
                    JTextField newTextField = new JTextField(20);
                    frame.getContentPane().add(newTextField);
                    frame.validate();
                    frame.repaint();
                
                  }
            });
            button.setBounds(205, 51, 53, 23);
            frame.getContentPane().add(button);
            
            JTextArea textArea = new JTextArea();
            textArea.setBackground(SystemColor.control);
            textArea.setBounds(23, 52, 180, 199);
            frame.getContentPane().add(textArea);
        }
  }

1 Ответ

1 голос
/ 09 июля 2020

У вас должен быть менеджер по расположению. Сделайте следующее:

frame.getContentPane().setLayout(new FlowLayout());
...