2013-02-22 42 views
2

我已經搜索了這個問題,但並未真正找到明確的,有用的答案。我正在構建我的第一個Java UI應用程序(使用Swing),我想知道一件事情:我如何強制調整窗口大小來縮放?對於我即將到來的計劃來說,這在美學上非常重要。任何人都可以幫助我嗎?謝謝!而且,夥計們,我並不是要求'給我一個解決方案',我知道你們討厭這個問題,我只是需要有人幫助我達成目標!在Swing窗口中強制固定的寬高比

  1. 這是一個小的博格遊戲。我有一個帶有JButton實例的網格來模擬Boggle的骰子(需要點擊這些骰子來形成單詞),當我調整窗口大小時,我希望骰子保持方形,它們變成矩形,這實際上並不是這樣。 。
+0

「我怎麼能強迫窗口的大小調整發生的比例?」 ......我不知道你問什麼在這裏。如果用戶調整大小,是否要保持幀的寬高比? – splungebob 2013-02-22 16:16:12

+0

@splungebob就是這樣呀!寬高比應該保持不變;) – 2013-02-22 16:17:58

回答

2

你可以聽你的窗口組件的改變大小事件,並在寬度改變設置所需的縮放高度。

addComponentListener(new ComponentAdapter() { 
    public void componentResized(ComponentEvent e) { 
    SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
     // TODO: calculate new size and set it 
     } 
    }); 
    } 
}); 

但是,你將不得不調整,如避免閃爍。

+0

我該如何避免閃爍? – 2013-03-01 10:46:32

2

您可能可以修改JDigit(見here)中顯示的方法,該方法重新採樣較大的BufferedImage以填充組件;調整框架大小以查看效果。通過將widthheight設置爲相同的值:Math.min(width, height),可以實施1:1寬高比。相關示例顯示here

image

相關問題