2012-07-29 64 views
1

我想要獲取Jframe的當前尺寸,只要點擊button1即可。這是我在button1clickevent中寫的代碼,最初當我點擊按鈕時,我得到了寬度和高度,但是當我更改Jframe的大小,然後再次單擊button1時,我得到的寬度和高度與我的相同得到更早。價值不會隨時改變。如何在運行時獲得JFrame的當前尺寸

AppDisplay ap=new AppDisplay(); //class which has got the JFrame 
    int f12; 
    f12=ap.getContentPane().getSize().width; 
    System.out.println(f12+"\n"); 
    f12=ap.getContentPane().getSize().height; 
    System.out.println(f12); 

回答

2

我認爲你引用了錯誤的Object。什麼是AppDisplay &爲什麼你需要一個新的實例?

另外,Frame.getSize();有什麼問題?

1

您正在打印JFrame內的內容窗格的大小。使用JFrame的getSize()方法來獲取框架的大小。

final Dimension size = ap.getSize(); 
System.out.println(size); 

此外,MadProgrammer讓你展示的代碼創建的AppDisplay一個新實例好點。即使不顯示它們,您也可以創建儘可能多的實例。您將始終需要仔細考慮對象的生命週期以及引用它們的變量名稱的範圍,以便每次都可以引用預期的對象。

+0

這樣的結果是包後'有效()'上該框架的「窗口」。 – trashgod 2012-07-29 23:30:14

0

我發現的一個想法。 放置一個jButton(「jbutton1」)作爲jFrame。 並編寫代碼不執行的buton。

System.out.println(this.getSize());

然後運行該框架。 將幀調整爲所需的大小。 然後點擊按鈕.. 我們將得到更新的大小.. 那麼我們就可以將其設置爲從JFrame的屬性框的實際尺寸...