Swing 组件何时“可显示”?

2024-01-06

有没有办法(例如,通过事件?)来确定 Swing 组件何时变为“可显示”——根据 JavadocsComponent.getGraphics http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Component.html#getGraphics()?

我尝试这样做的原因是这样我就可以打电话getGraphics(),并将其传递给我的组件“渲染策略”。

我试过添加一个ComponentListener, but componentShown似乎没有被叫到。还有什么我可以尝试的吗?

Thanks.

另外,是否可以保留Graphics我收到的对象?或者是否有可能在生命周期的后期创建一个新的Component? (例如,调整大小/隐藏后?)


添加层次结构监听器

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));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swing 组件何时“可显示”? 的相关文章

随机推荐