背景
就開發圖形界面,遇到窗口居中,就原方法,是先獲取屏幕的長和寬,然后在除以2,
還有一種就是在初始化JFrame時候,寫上一句
setLocationRelativeTo(null);
這樣就會使窗口居中,但要注意順序,應該是先定義窗口大小,在寫上這句話!
在看下api中的說明
public void setLocationRelativeTo(Component c)根據以下情況設置窗口相對於指定組件的位置。 下面提到的目標屏幕是在調用setLocationRelativeTo方法之后應該放置窗口的屏幕。 如果組件是null ,或GraphicsConfiguration與此組件關聯是null時,窗口被放置在屏幕的中心。 中心點可以使用GraphicsEnvironment.getCenterPoint方法獲得。 如果組件不是null ,但它當前沒有顯示,則該窗口將放置在與此組件GraphicsConfiguration GraphicsConfiguration定義的目標屏幕的中心。 如果組件不是null並顯示在屏幕上,則窗口的位置使得窗口的中心與組件的中心重合。 如果屏幕配置不允許窗口從一個屏幕移動到另一個屏幕,則窗口僅被放置在根據上述條件確定的位置,並且其GraphicsConfiguration未更改。 注意 :如果窗口的下邊緣超出屏幕,則窗口放置在離屏幕中心最近的Component側。 因此,如果組件位於屏幕的右側,窗口將放置在左側,反之亦然。 如果在計算了窗口位置之后,窗口的上,左或右邊緣超出了屏幕,則窗口位於窗口的上,左或右邊緣與屏幕的相應邊緣。 如果窗口的左邊緣和右邊緣都不在屏幕之外,窗口將放置在屏幕的左側。 如果頂部和底部邊緣都超出屏幕,則會發生類似的放置。 在這種情況下,窗口被放置在屏幕的頂部。 該方法更改幾何相關數據。 因此,本地窗口系統可以忽略這樣的請求,或者它可以修改所請求的數據,使得Window對象被放置並且以與桌面設置密切對應的方式被放大。 參數 c - 確定窗口位置的組件