Java GUI repaint()问题?

Dev*_*ted 7 java user-interface refresh jpanel 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();
Run Code Online (Sandbox Code Playgroud)

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

Tom*_*ine 15

Container.add API文档说:

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

这是模糊的,不是很聪明,但这是规则.打电话可能更好JComponent.revalidate