Javaを使いながら、アプリケーションを起動したときにメインウィンドウを画面の中央に配置するのは難しいと思います。
私はそれを行うことができる方法はありますか?垂直方向の中央に配置する必要はありません。水平方向の配置が私にとって最も重要な目標です。しかし、垂直方向の配置も大歓迎です。
私はいつもこうやってやった:
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation(dim.width/2-this.getSize().width/2, dim.height/2-this.getSize().height/2);
this
は、関連するJFrameです。
setLocationRelativeTo(null)
を使用
このメソッドにnull
を渡すと、特別な効果があります。 Javadocによると:
コンポーネントがnullの場合、またはこのコンポーネントに関連付けられているGraphicsConfigurationがnullの場合、ウィンドウは画面の中央に配置されます。
これは、サイズを設定した後、またはpack()
を呼び出した後で、表示可能に設定する前に、次のようにしてください。
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
ウィンドウを中央に配置するには、 JFrame.setLocationRelativeTo(null)
を呼び出します。必ずこれをJFrame.setVisible(true)
の前に置いてください。
これと同じくらい簡単...
setSize(220, 400);
setLocationRelativeTo(null);
フレームを使用している場合は、フレームを
frame.setSize(220, 400);
frame.setLocationRelativeTo(null);
明確にするために、 ドキュメントより :
コンポーネントがnullの場合、またはこのコンポーネントに関連付けられているGraphicsConfigurationがnullの場合、ウィンドウは画面の中央に配置されます。
これを追加すると、サイズが設定されます。
frame.setLocationRelativeTo(null);
私は開発者環境としてNetBeans IDE 7.2.1を使用していますが、そこにはJFormプロパティを設定するオプションがあります。
jFormのプロパティで、[コード]タブに移動し、[Generate Center]を設定します。最初にフォームサイズポリシーを「サイズ変更コードの生成」に設定する必要があります。
私はNetBeans IDE 7.3を使用しています。これがJFrameの一元化です。JFrameパネルをクリックしてJFrameプロパティバーに移動し、コードバーをクリックしてGenerate Centerチェックボックスを選択します。
NetBeansを使用している場合は、デザインビューのフレームをクリックしてから、そのプロパティのコードタブをクリックします。次に、「Generate Center」をチェックしてください。これで仕事は終わりです。
この方法を使用すると、JFrameを中央に配置して全画面表示にすることができます。
yourframe.setExtendedState(JFrame.MAXIMIZED_BOTH);
明示的にsetPreferredSize(new Dimension(X, Y));
を使用している場合は、次のように使用することをお勧めします。
setLocation(dim.width/2-this.getPreferredSize().width/2, dim.height/2-this.getPreferredSize().height/2);
Net Beans GUIの場合 - jframe(ナビゲーターでは右クリック on jFrame)プロパティの下のコード、フォームサイズポリシープロパティ選択サイズ変更コードを生成します。同じウィンドウで、位置の生成を取り消すおよびティックサイズを生成and Center.
プログラミングを楽しんでください。ラマナ
Java Swingの場合:
「ナビゲータ」に移動->「JFrame」->「プロパティ」->「コード」->生成センターをチェック