Автозаполнение в Java File Chooser - PullRequest
2 голосов
/ 13 февраля 2011

Я ищу способ добавить функцию автозаполнения в Java в диалог выбора файлов. Кажется, Java Swing JFileChooser не поддерживает это. Единственная альтернатива, которую я нашел, это gtk FileChooser Я бы хотел узнать, существуют ли другие альтернативы.

Ответы [ 3 ]

1 голос
/ 13 февраля 2011

В качестве альтернативы можно использовать SWT FileDialog - при этом используется диалоговое окно с собственным файлом операционной системы (например, GTK в Linux), поэтому вы получаете то же поведение, пользователи привыкли к своей ОС. Это включает автозаполнение в Linux / GTK и Mac (я не знаю, если Windows тоже это предоставляет?)

Я совсем не уверен, стоит ли включать SWT только для этой цели, но я хотел упомянуть об этой альтернативе.

1 голос
/ 25 марта 2011

если у кого-то есть добавленная автофункция, то он / она должен получить доступ к текстовому полю, но это невозможно обычным способом

Это своего рода хак, который ищет все компоненты, а затем находит экземпляр текстового поля и возвращает его.

вот код ..

private  JTextField dis(JFileChooser jf) {
    boolean hide =false;
    LinkedList<Component> queue = new LinkedList<Component>();
    queue.add(jf);
    JTextField jtf=new JTextField();
    while(queue.size() != 0) {
        Component[] c = ((Container) queue.removeFirst()).getComponents();   
        for(int i = 0; i < c.length; i++) {                        
            queue.add(c[i]);    

            if(c[i] instanceof JTextField) {
                jtf = (JTextField) c[i];
                jtf.setVisible(true);
                jtf.setEnabled(true);
                jtf.setText(" hello ");
                return jtf;
            }


    }           
}


return jtf;

}

и вот ссылка на класс, расширяющий JFileChooser, который применяет автозаполнение http://commondatastorage.googleapis.com/holyvincent/FileChooser/VinFC.java

Пожалуйста, сообщите, есть ли ошибки в расширенном классе. Спасибо

0 голосов
/ 13 февраля 2011

Как насчет реализации вашего собственного FileChooser, где вы сможете добавить DocumentListener в TextField, который содержит ваш путь к файлу + имя файла в окне выбора файлов.Не уверен, что вы можете сделать выше с JFileChooser.Тем не менее, это будет НЕКОТОРЫЙ объем кода, если вы хотите, чтобы поведение средства выбора файлов соответствовало стандартному JFileChooser вместе с добавленной функцией автозаполнения.

...