2009-08-14 2 views
1

Я хочу отобразить Java FileDialog и установить его начальный размер на что-то разумное (он не отображает кнопку максимизации, и многие пользователи могут не знать, что вместо этого вы можете использовать alt-space X) , Я попробовал setBounds, но ничего не сделал, и я не вижу метода его максимизации; что мне не хватает?Java FileDialog программно задан размер

Обновление: по крайней мере в Windows диалоговое окно системного файла запоминает размер и максимизирует состояние даже при вызове программы, поэтому пользователь может установить его на нужный размер только один раз, и он останется таким же; что кажется достаточным, поэтому я оставлю это на этом.

+0

У некоторых людей есть разрешения при 2560x1600 или выше. Максимизированные окна с этим разрешением являются отвратительными. –

+1

@Dave: Нет, когда у вас есть несколько тысяч файлов для списка. –

ответ

1

Прежде всего, я бы порекомендовал вам использовать JFileChooser от swing (если только вы не ограничены awt по какой-либо причине). У него было больше возможностей.

Во-вторых, они оба наследуются от Component, который имеет метод setize. Вы можете получить размер экрана пользователя и установить размер в процентах от этого.

Вы абсолютно хотите его максимизировать? Если так, просто установите размер в размере экрана пользователя.

Вы можете получить размер экрана с помощью: Dim Dim = Toolkit.getDefaultToolkit(). GetScreenSize();

Если это не ответит на ваш вопрос, будьте аккуратнее.

+0

Для любви ко всему хорошему в этом мире, пожалуйста, не предлагайте людям максимизировать окна. Мое разрешение - 2560 x 1600. –

+0

lol! Ну, я предоставляю только средства. Не тот здравый смысл, который необходим для его использования. ;) Но я мог бы принять участие в максимизации. Он был тем, кто поднял его! –

1

Вам необходимо позвонить в пакет(), а затем установить значениеSize(). Пока он не упакован, это не реализовано. Сделайте пакет перед setVisible(). BTW, pack() будет изменять размер диалогового окна, чтобы содержимое получило их предпочтительный размер, так что это может быть то, что вы хотите.

Я использую AWT FileDialog, и у меня не было проблем с размером (у меня были проблемы с попыткой найти его правильно, но это отдельная проблема). Мой код является очевиден:

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

Размер по умолчанию вполне разумен в моем опыте. И, конечно, он изменен с помощью мыши - так как это диалог, а не кадр, он не максимизируется.

Я просто попробовал несколько вариантов на setSize() после моего dlg.setVisible(), и он полностью игнорирует их, возможно, потому, что это тяжелое окно с собственными представлениями о его размере и местоположении. Должен признаться, я всегда удивлялся, что FilenameFilter не работает в Windows, что звучит как странное ограничение.

+0

Я пробовал пакет(), но никакого эффекта. – rwallace

Смежные вопросы