你好我的工作我的项目我的基于Swing GUI的一部分,我需要定义的setBounds Jframe的方法用的setResizable呼叫同步,所以我这样做:摇摆的setResizable和的setBounds
setResizable(true);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle rect = new Rectangle(screenSize.width/2 - screenSize.width/4, screenSize.height/2 - screenSize.height/4, screenSize.width/2, screenSize.height/2);
setBounds(rect);
setResizable(false);
但结果是,我的框架没有得到给定的边界,它只是禁用调整大小功能。如果我删除最后一次setResizable调用,那么表单将会得到正确的界限。其实我有一个基于框架和许多面板的向导,我改变框架上的面板就像状态一样。只有在一个小组中,我想给用户机会调整框架的大小,否则它应该是固定的大小。所以在我的主框架我实现了两个方法,enableWizardMode和enablePlayingGameMode:
@Override
public void enablePlayingGameMode() {
setResizable(true);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setBounds(new Rectangle(screenSize.width/10, screenSize.height/10, screenSize.width - screenSize.width/5, screenSize.height- screenSize.height/5));
}
@Override
public void enableWizardMode() {
setResizable(true);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setBounds(new Rectangle(screenSize.width/2 - screenSize.width/4, screenSize.height/2 - screenSize.height/4, screenSize.width/2, screenSize.height/2));
setResizable(false);
}
我与IComponentListener尝试,但它并不能帮助我,这我调整框架随机。 另外我尝试使用SwingUtilities.invokeLater将可调整大小的标志设置为false,但它也无济于事。 有谁知道这个问题的解决方案?我运行Linux和oracle jdk7。 谢谢。
它不适合我。我只是试了一下。其实我有一个基于框架和许多面板的向导,我改变框架上的面板就像状态一样。只有在一个小组中,我想给用户调整框架的机会,否则它不应该调整大小。 – AlexTheo 2012-02-25 13:03:21
@AlexTheo:那么你需要更新你的问题,并提供所有相关的信息,包括这个和更多的细节。考虑创建和发布[sscce](http://sscce.org),就像我的帖子一样,它会让我们看到你自己的问题,并允许我们修改和测试工作代码。 – 2012-02-25 13:05:33
好的,就这样做了。 – AlexTheo 2012-02-25 13:12:44