java swing窗口放置屏幕中央問題思考

之前老是嘗試各類方法都沒有能把組件放到屏幕中央,只能用死辦法,設置絕對座標,但這樣就失去了可移植性,並且繁瑣.今天仔細思考了一番,終於被我找出問題所在.

注意如下部分紅功的前提條件是:pack(),必須放在如下代碼以前執行,不然pack()置於以後將會覆蓋前面的位置設置,前面的代碼就失效了.這就是一直折磨個人問題.

使主窗口居中通常使用下面的方法: 工具

第一種方法        
     int windowWidth = frame.getWidth();                     //得到窗口寬
     int windowHeight = frame.getHeight();                   //得到窗口高       
     Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();             //獲取屏幕的尺寸
     int screenWidth = screenSize.width;                     //獲取屏幕的寬
     int screenHeight = screenSize.height;                   //獲取屏幕的高
     frame.setLocation(screenWidth/2-windowWidth/2, screenHeight/2-windowHeight/2);//設置窗口居中顯示   this

第二種方法
     Toolkit kit = Toolkit.getDefaultToolkit();    // 定義工具包
     Dimension screenSize = kit.getScreenSize();   // 獲取屏幕的尺寸
     int screenWidth = screenSize.width/2;         // 獲取屏幕的寬
     int screenHeight = screenSize.height/2;       // 獲取屏幕的高
     int height = this.getHeight();
     int width = this.getWidth();
     setLocation(screenWidth-width/2, screenHeight-height/2); spa

0三、第三種方法,是jdk1.4以後提供的方法
     setLocationRelativeTo(othercomponent);
    這種方法是設定一個窗口的相對於另一個窗口的位置(通常是居中於父窗口的中間),若是爲null則窗口就居於屏幕的中央。 component

成功的前提條件是:pack(),必須放在如下代碼以前執行,不然pack()置於以後將會覆蓋前面的位置設置,

相關文章
相關標籤/搜索