Автозаполнение в средстве выбора файлов Java

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


person keheliya    schedule 13.02.2011    source источник


Ответы (3)


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

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

вот код..

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

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

person vincent mathew    schedule 25.03.2011

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

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

person Chris Lercher    schedule 13.02.2011

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

person Swaranga Sarma    schedule 13.02.2011