Установите местоположение JFileChooser

Как мы можем установить местоположение JFileChooser окно, я попробовал setLocation() и setBounds() методы, но это не делает работ.

6
задан jjnguy 16 February 2010 в 04:54
поделиться

2 ответа

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

Один из способов сделать это - создать подкласс 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;
        }
    }

Теперь вы можете напрямую использовать MyChooser вместо JFileChooser. В приведенном выше коде я жестко запрограммировал местоположение на 20, 20, но вы можете установить все, что захотите.

9
ответ дан 10 December 2019 в 02:46
поделиться

Из JavaDoc для JFileChooser's showDialog, похоже, что у вас нет большого контроля над тем, куда помещается диалог.

Аргумент parent определяет две вещи: фрейм, от которого зависит открытый диалог, и компонент, положение которого следует учитывать при размещении диалога. Если родителем является объект Frame (например, JFrame), то диалог зависит от фрейма, а внешний вид позиционирует диалог относительно фрейма (например, центрирует по фрейму). Если родителем является компонент, то диалог зависит от фрейма, содержащего компонент, и позиционируется относительно компонента (например, по центру над компонентом). Если родитель - null, то диалог не зависит от видимого окна и размещается в позиции, зависящей от внешнего вида и ощущений, например, в центре экрана.

0
ответ дан 10 December 2019 в 02:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: