我首先调用下面的方法设置窗口为无边框,全屏显示,而后,我又以事件触发调用下面方法设置窗口为非全屏,有边框。但是边框显示不出来。为什么?我repaint了一下还是不行。
/*
设置屏幕模式,全屏或非全屏
如果flag=true窗口全屏显示,无边框
如果flag=false窗口居中显示,有边框
*/
public void setScreen(boolean flag){
this.setUndecorated(flag);
if(flag){
this.setSize(Toolkit.getDefaultToolkit().getScreenSize());
}
else{
Dimension dimension=Toolkit.getDefaultToolkit().getScreenSize();
int x=dimension.width/4;
int y=dimension.height/4;
int width=dimension.width/2;
int height=dimension.height/2;
this.setBounds(x,y,width,height);
this.repaint();
}
}
/*
设置屏幕模式,全屏或非全屏
如果flag=true窗口全屏显示,无边框
如果flag=false窗口居中显示,有边框
*/
public void setScreen(boolean flag){
this.setUndecorated(flag);
if(flag){
this.setSize(Toolkit.getDefaultToolkit().getScreenSize());
}
else{
Dimension dimension=Toolkit.getDefaultToolkit().getScreenSize();
int x=dimension.width/4;
int y=dimension.height/4;
int width=dimension.width/2;
int height=dimension.height/2;
this.setBounds(x,y,width,height);
this.repaint();
}
}
This method can only be called while the frame is not displayable.改成
this.dispose();
this.setUndecorated(flag);
if (flag) {
...
}
else {
...
}
this.setVisible(true);