Автоматически помещать JTextFilds в GUI, repaint () - PullRequest
0 голосов
/ 08 января 2019

Как я могу автоматически разместить другие TextFields на панели, когда я получу их количество в другом TextField ?! Я пытаюсь использовать repaint (), но я не понял.

import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Example extends JFrame {

    private Container container;
    private JPanel panel;
    private JTextField number; //get a number of TextFields
    private JTextField text;  // this to put in gui automatically 

    public Example() {
        super("Example");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(200, 400);
        setLocationRelativeTo(null);
        openView();
    }

    public void openView() {
        container = this.getContentPane();

        panel = new JPanel();
        panel.setSize(new Dimension(200, 400));
        panel.setLayout(null);

        number = new JTextField();
        number.setBounds( 50, 10, 100, 40);
        number.addKeyListener(new KeyListener() {

            @Override
            public void keyPressed(KeyEvent e) {
                // put others TextFields on gui
                int y= 50;
                int count = Integer.parseInt(number.getText());
                for(int i=0; i<count; i++) {
                    text = new JTextField();
                    text.setBounds(50, y, 100, 40);
                    panel.add(text);
                    y=y+50;
                }

            }

            @Override
            public void keyReleased(KeyEvent e) {
                // TODO Auto-generated method stub

            }

            @Override
            public void keyTyped(KeyEvent e) {
                // TODO Auto-generated method stub

            }

        });

        panel.add(number);
        container.add(panel);

    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Example example = new Example();
        example.setVisible(true);
    }

}

Как вы видите, я пытаюсь поместить другие TetxFields на панель, но когда я добавляю какое-то число в Textfield, у меня возникает исключение, например
java.lang.NumberFormatException: For input string: "".

Но я на самом деле изменил String на int.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...