1

次のようなコンストラクタを持つダイアログ クラスがあります。

public SampleDialog(JComponent parent, String title){
    super((Frame)SwingUtilities.getAncestorOfClass(Frame.class, parent), title, false);
    setLocationRelativeTo(parent);
    init();
  }

ただし、これにより、右上隅が親の中央になるようにダイアログが配置されます。ダイアログの中心を親コンポーネントの中心の上に置きたいです。どうすればいいですか?私は何か間違ったことをしていますか?

4

2 に答える 2

1

私はそれを考え出した。setLocationRelativeTo(parent) をコンストラクターの最後に移動する必要がありました。init メソッドで呼び出していた pack() が呼び出された後に呼び出す必要があります。

public SampleDialog(JComponent parent, String title){
    super((Frame)SwingUtilities.getAncestorOfClass(Frame.class, parent), title, false);
    init();
    setLocationRelativeTo(parent);
  }

init(){
  // initialization code goes here
  pack();
}
于 2010-09-07T20:33:33.803 に答える
0

これと似たようなことをしましたが、使用しました

Dimension dim = Toolkit.getDefaultToolkit()

次に.getScreenSizeを使用しましたが、次のようなもので親アプリケーションの幅と高さを取得するために使用できると確信しています:

myApplication.setLocation((int)dim.getWidth(),(int)dim.getHeight());

これが役立つことを願っています。

于 2010-09-07T20:25:06.170 に答える