有没有办法(例如,通过事件?)确定 Swing 组件何时变为“可显示”——根据 Component
.getGraphics 的 Javadocs ?
我尝试这样做的原因是我可以调用 getGraphics()
,并将其传递给我的组件“渲染策略”。
我已经尝试添加一个 ComponentListener
,但是 componentShown
似乎没有被调用。还有什么我可以尝试的吗?
谢谢。
此外,保留我收到的 Graphics
对象是否可以?或者是否有可能在 Component
的生命周期后期创建一个新组件? (例如,在调整大小/隐藏之后?)
最佳答案
添加一个 HierarchyListener
public class MyShowingListener {
private JComponent component;
public MyShowingListener(JComponent jc) { component=jc; }
public void hierarchyChanged(HierarchyEvent e) {
if((e.getChangeFlags() & HierarchyEvent.SHOWING_CHANGED)>0 && component.isShowing()) {
System.out.println("Showing");
}
}
}
JTable t = new JTable(...);
t.addHierarchyListener(new MyShowingListener(t));
关于java - 什么时候是 Swing 组件 'displayable' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/878694/