2009-08-14 8 views
1

Java FileDialogを表示し、その初期サイズを妥当な値に設定したい(最大化ボタンが表示されず、多くのユーザーがalt-space Xを使用できることを知らないかもしれません) 。私はsetBoundsを試しましたが、何もしなかったので、最大化する方法はありません。私は何が欠けていますか?Java FileDialogはプログラムでサイズを設定しました

アップデート:少なくともWindowsでは、システムファイルダイアログはサイズを記憶し、プログラム呼び出し間でも状態を最大にするので、ユーザーは希望のサイズに一度だけ設定することができます。それは十分だと思われるので、私はそれを残すでしょう。

+0

2560x1600以上の解像度の人もいます。その解像度で最大化されたウィンドウはひどいです。 –

+1

@Dave:リストに数千のファイルがあるときはありません。 –

答えて

1

まず、スイングからJFileChooserを使用することをお勧めします(何らかの理由でawtに制限されていない限り)。それはもっと多くの選択肢を持っています。

第2に、setsizeメソッドを持つComponentから継承します。ユーザーの画面のサイズを取得し、そのサイズに割合を設定できます。

あなたはそれを最大限にしたいですか?その場合は、サイズをユーザーの画面のサイズに設定します。

Dimension dim = Toolkit.getDefaultToolkit()。getScreenSize();

これがあなたの質問に答えることができない場合は、より正確にしてください。

+0

この世に良いものを愛するために、人々が窓を最大にするように勧めないでください。私の解像度は2560 x 1600です。 –

+0

lol!私は手段だけを提供します。それをうまく使うには良い意味合いがありません。 ;)しかし、私は最大化についての部分を取り除くことができました。彼はそれを持ち出す人でした! –

1

pack()を呼び出してからsetSize()を呼び出す必要があります。それが詰まるまで、それは実現していません。 setVisible()の前にパックを行います。ちなみに、pack()は内容が好みのサイズになるようにダイアログのサイズを決めます。

私はAWT FileDialogを使用していますが、サイズに問題はありませんでした(正しく配置されるようにするために問題がありましたが、それは別の問題です)。私のコードは明らかです:

dlg=new FileDialog(owner,"Select File to Load",FileDialog.LOAD); 
dlg.setFile(null); 
dlg.setVisible(true); 

私の経験では、デフォルトのサイズは完全に合理的です。もちろん、それはマウスでリサイズすることができます - それはダイアログであり、フレームではないので最大化できません。

私はdlg.setVisible()の後にsetSize()をいくつか試してみましたが、サイズや位置について独自のアイデアを持っているヘビーウェイトウィンドウなので、おそらく無視されます。私は、FilenameFilterがWindowsでは機能しないことにいつも驚いていることを認めなければならない。これは奇妙な制限のように思える。

+0

私はpack()を試みましたが効果はありませんでした。 – rwallace

関連する問題