从JavaDoc:
public void validate()
验证此容器及其所有子组件。验证容器意味着布置其子组件。
那就是我想做的。使用尽可能轻巧的组件。但是当我用JComponent
调用validate()
时,并不会使组件“有效”。
JComponent c = new JComponent() {};
System.out.println(c.isValid()); // false
c.validate();
System.out.println(c.isValid()); // false
为什么我不能使
JComponent
有效? 最佳答案
在isValid()
的文档中说:
当组件在其父容器中具有正确的大小和位置并且其所有子组件也都有效时,该组件才有效。
在达到Top-Level Container(JFrame
,JInternalFrame
或JApplet
)之前,情况就是这样。在问题所在的示例中,您的JComponent
没有父母,因此它永远不会有效。
关于java - 为什么我不能验证JComponent?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8362484/