2015-12-03 97 views
0

我有下面的類:JPanel的尺寸自動改變

public class Projector extends JPanel{ 
    public Projector(){ 
    this.setPreferredSize(new Dimension(1024, 704)); 
    } 
} 

如果我打印構造函數中的投影機的尺寸,我有權利尺寸,但是當我的地方打印尺寸的構造函數外, 我得到的結果(1018,675)

任何想法爲什麼會發生這種情況,我該如何解決這個問題?

+1

這段代碼不會編譯,你在'this.set ...'中缺少')'。 *但是當我在構造函數之外的某處打印維度時*您如何打印它?請發佈[Runnable示例](http://stackoverflow.com/help/mcve) – Frakcool

+0

常見,這只是一個錯字.. this.getSize()。toString()是我如何獲得維數 –

+1

再次請閱讀我提供併發布了一個[最小化,完整和可驗證示例](http://stackoverflow.com/help/mcve)或[簡短,獨立,正確(可編譯),示例(SSCCE)]鏈接的鏈接(http: //sscce.org/),我們可以複製粘貼並查看您看到的相同問題。 *常見,這只是一個錯字。*我看到很多問題在這裏,因爲一個錯字沒有工作... – Frakcool

回答

0

這是因爲Java不會計算操作系統繪製的窗口邊框使用的像素,包括最小化,最大化和關閉按鈕的位置。 (這就是爲什麼Y軸上的差異更大) 還有另一種方法來獲取因此導致的像素浪費。