Java GUI repaint()问题?

我有一个JFrame。 这个JFrame包含一个JButton。 我单击JButton并创建了10个JTextField。

问题:直到“我通过调整窗口大小强制重绘()”,我才能看到它们。 只有这样我才能看到创建的JTextFields。

码:

JPanel points = new JPanel(); //Creating the JTextFields: for (int i=0; i<10; i++) { JTextField textField = new JTextField(); points.add(textField); } repaint(); this.repaint(); super.repaint(); points.repaint(); 

谢谢 – 在for循环之后,我只调用了points.validate()并且它有效…

Container.add API文档说:

注意:如果已将组件添加到已显示的容器中,则必须在该容器上调用validate以显示新组件。 如果要添加多个组件,则可以在添加所有组件后仅调用一次validation来提高效率。

这是模糊的,不是很聪明,但这是规则。 调用JComponent.revalidate可能更好