6

ウィンドウの場所を設定するにはどうすればよいですか、メソッドJFileChooserを試し ましたが、機能しません。setLocation()setBounds()

4

3 に答える 3

9

残念ながら、それを行う簡単な方法はありません。チューザーを表示するたびに、内部のcreateDialogメソッドが場所を親の中心に設定するためです。

これを行う1つの方法は、JFileChooserをサブクラス化し、次のようにcreateDialogメソッドをオーバーライドすることです。

   static class MyChooser extends JFileChooser {
        protected JDialog createDialog(Component parent)
                throws HeadlessException {
            JDialog dlg = super.createDialog(parent);
            dlg.setLocation(20, 20);
            return dlg;
        }
    }

これで、JFileChooserの代わりにMyChooserを直接使用できます。上記のコードでは、場所を20、20にハードコーディングしていますが、任意に設定できます。

于 2010-02-16T04:58:16.840 に答える
0

JavaDocからは、ダイアログJFileChoosershowDialog配置される場所をあまり制御できないように見えます。

親引数は、開いているダイアログが依存するフレームと、ダイアログを配置するときにルックアンドフィールが考慮すべき位置のコンポーネントの2つを決定します。親がFrameオブジェクト(JFrameなど)の場合、ダイアログはフレームに依存し、ルックアンドフィールはダイアログをフレームに対して相対的に配置します(たとえば、フレームの中央に配置します)。親がコンポーネントの場合、ダイアログはコンポーネントを含むフレームに依存し、コンポーネントに対して相対的に配置されます(たとえば、コンポーネントの中央に配置されます)。親がnullの場合、ダイアログは表示されているウィンドウに依存せず、画面の中央など、ルックアンドフィールに依存する位置に配置されます。

于 2010-02-16T04:57:01.300 に答える
0

JFileChooserの親を現在のJFrame/JPanelに設定してみることができます。

JFrame parentToBe = new JFrame();
JFileChooser chooser = new JFileChooser();
int pathSelection = chooser.showSaveDialog(parentToBe);

これでうまくいくはずです。

こちらも参考にしてください。

于 2015-07-08T06:57:38.720 に答える