7

我有一个 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() 并且它起作用了......

4

1 回答 1

15

Container.addAPI 文档说:

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

它晦涩难懂,也不是很聪明,但这是规则。打电话可能会更好JComponent.revalidate

于 2008-12-15T21:56:12.637 回答