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() 并且它起作用了......
I have a JFrame. This JFrame contains a JButton. I click the JButton and 10 JTextFields are created.
the problem:
I cannot see them until "I force a repaint()" by resizing the window. Only then do I see the JTextFields created.
CODE:
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();
THANK YOU - after the for loop, I just called points.validate() and it worked...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
容器.add
API 文档说:这很晦涩,也不是很聪明,但这就是规则。 调用 JComponent.revalidate 可能会更好
Container.add
API docs sayeth:It's obscure and not very clever, but it's the rules. It may be better to call
JComponent.revalidate