2

私は自分のメイン フレームと、誰かがメニュー項目を選択したときにポップアップする 2 つの JDialogs を持っています。画面のフレーム/ダイアログの左上隅を中央に配置するためです。フレームとダイアログの両方の中心を画面の中央に配置するにはどうすればよいでしょうか? 前もって感謝します !

4

5 に答える 5

3

これらを順番に実行します。

1)表示するフレーム/ダイアログでpack()orsetSize(...)を呼び出します (この時点でコンポーネントが既に追加されているはずです)。

2) 次に、setLocationRelativeTo(null)そのコンテナを呼び出します。setLocationRelativeTo(parent)または、親がオフセットされていて、ダイアログを現在の位置で親内の中央に配置する場合は、呼び出すことができます。

3) 次に、電話するsetVisible(true)

于 2013-08-10T18:35:59.780 に答える
2

私はそれが役立つと思います:

frame.setLocationRelativeTo(null);

通常はnull引数として a を入れますが、 type の引数を入れることもできます。常に画面の中央に表示されるのでComponent、私はそれを好みます。JOptionPane

   frame.setLocationRelativeTo(new JOptionPane());
   //OR
   frame.setLocationRelativeTo(JOptionPane.getRootFrame());
  • nullそして、レイアウト(絶対配置)を使用しないでください。常に使用してLayoutManagersください。
于 2013-08-10T18:29:39.540 に答える
2

setLocationRelativeTo(null)まだサイズがない場合、Dialogたとえば..pack()setLocationRelativeTo

小さな例:

    JFrame testFrame = new JFrame();
    JButton testButton = new JButton();
    testButton.setPreferredSize(new Dimension(500, 500));
    testFrame.add(testButton);
    testFrame.pack();
    testFrame.setLocationRelativeTo(null);
    testFrame.setVisible(true);

これにより、中心が画面の中心にあるフレームが表示されます。

于 2013-08-10T18:31:23.087 に答える
1

このヘルパー メソッドを使用して、JFrame または JDialog を中央に配置します。

public static Window centerFrame(Window win) {
        Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
        win.setLocation((int) ((dim.getWidth() - win.getWidth()) / 2), (int) ((dim.getHeight()  - win.getHeight()) / 2));
        return win;
    }
于 2013-08-10T18:24:35.550 に答える