你好我的工作我的項目我的基於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