从JavaDoc:
public void validate() 验证此容器及其所有子组件。验证容器意味着布置其子组件。
public void validate()
验证此容器及其所有子组件。验证容器意味着布置其子组件。
那就是我想做的。使用尽可能轻巧的组件。但是当我这样做时,对JComponent的调用validate()不会使组件“有效”。
JComponent
validate()
JComponent c = new JComponent() {}; System.out.println(c.isValid()); // false c.validate(); System.out.println(c.isValid()); // false
为什么我不能做一个JComponent有效的?
在文档中isValid()说:
isValid()
当组件在其父容器中的大小和位置正确且其所有子组件也均有效时,该组件才有效。
这种情况,直到你达到顶级容器(JFrame,JInternalFrame或JApplet)。在您所遇到的问题的示例中,您JComponent没有父母,所以它永远不会有效。
JFrame
JInternalFrame
JApplet