所以我有一个面板,根据用户输入,他们填充了x个jlabels。现在问题是,当用户输入信息时,标签成功填充,但它们在面板中无法正确显示;他们甚至没有表现出来。
只有当我调整框架大小时才会出现?
答案 0 :(得分:1)
我做了Swing编程已经有一段时间了,我想要在添加组件后记住容器上的方法。我认为这是revalidate()
。
答案 1 :(得分:1)
JPanel yourPanel = new JPanel();
yourPanel.repaint();
yourPanel.validate();
答案 2 :(得分:0)
invalidate
标记组件需要尽快重新启动,因为组件或其中一个子组件已调整大小或变得可见或不可见。当添加/删除子组件时,会自动在组件上调用invalidate
。
validate
检查容器是否有效,如果没有,则调用doLayout或invalidateTree来计算子组件的位置和大小。如果需要,validate
可以有效地重做布局,决定容器中所有组件的新大小和位置。
在容器中添加/删除组件后,必须在父级上调用validate
以使LayoutManager重做布局。致电validate
并未安排重新投放,因此您可能需要在repaint
之后致电validate
。