java JFrame调整大小
问题描述:
我在我的项目中有以下代码段。java JFrame调整大小
someJFrame.addComponentListener(new ComponentAdapter(){
public void componentResized(ComponentEvent e) {
pane.resize(new Dimension(getSize().width/5, getSize().height/3));
pane.revalidate();
pane.repaint();
}
});
这似乎在开始时调用的componentResized()方法,权当是的JFrame在第一次初始化,即使用户没有调整JFrame-我需要防止这种情况发生。我只想在发生实际大小调整时调用componetResized(),而不是在JFrame初始化时调用。
答
下面是去 -
- 定义一个布尔标志,指示是否显示组件,默认为false
- 覆盖的componentShown(),并设置该标志为true的方式,这被称为当窗体可见
- 在的componentResized()检查的componentShown标志设置,才做一些
事情是这个 -
private boolean componentShown = false; // instance variable
someJFrame.addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent e) {
if(componentShown) {
System.out.println("Component RESIZED");
}
}
public void componentShown(ComponentEvent e) {
componentShown = true;
}
});
+0
谢谢,工作很好。所以,我的猜测是componentResized在componentShown之前调用。 – user1917209 2013-03-22 11:06:38
将侦听器添加到框架可见之后。 – camickr 2013-03-22 04:36:12