Java: JFileChooser Как показать выбранный файл в текстовом поле - PullRequest
4 голосов
/ 08 декабря 2011

У меня есть JFileChooser, и я могу напечатать Абсолютный Путь в консоли. Мне нужно показать FilePath в текстовом поле, как только пользователь выберет файл.

Ниже приведен код, пожалуйста, дайте мне знать, как это сделать.

        public void actionPerformed(ActionEvent ae) {

        JFileChooser fileChooser = new JFileChooser();
        int showOpenDialog = fileChooser.showOpenDialog(frame);

        if (showOpenDialog != JFileChooser.APPROVE_OPTION) return;

Пожалуйста, дайте мне знать, если вам нужны какие-либо другие данные.

Ответы [ 3 ]

5 голосов
/ 08 декабря 2011

Вам нужно прослушать изменения, которые происходят при использовании JFileChooser, посмотрите этот фрагмент кода:

JFileChooser chooser = new JFileChooser();

// Add listener on chooser to detect changes to selected file
chooser.addPropertyChangeListener(new PropertyChangeListener() {
    public void propertyChange(PropertyChangeEvent evt) {
        if (JFileChooser.SELECTED_FILE_CHANGED_PROPERTY
                .equals(evt.getPropertyName())) {
            JFileChooser chooser = (JFileChooser)evt.getSource();
            File oldFile = (File)evt.getOldValue();
            File newFile = (File)evt.getNewValue();

            // The selected file should always be the same as newFile
            File curFile = chooser.getSelectedFile();
        } else if (JFileChooser.SELECTED_FILES_CHANGED_PROPERTY.equals(
                evt.getPropertyName())) {
            JFileChooser chooser = (JFileChooser)evt.getSource();
            File[] oldFiles = (File[])evt.getOldValue();
            File[] newFiles = (File[])evt.getNewValue();

            // Get list of selected files
            // The selected files should always be the same as newFiles
            File[] files = chooser.getSelectedFiles();
        }
    }
}) ;

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

yourTextfield.setText(chooser.getSelectedFile().getName());

Или просто

yourTextfield.setText(curFile.getName());

Это метод getName () из класса File, который даст вам то, что вам нужно.Помогите себе из документа API узнать, что делает каждый метод.

1 голос
/ 11 июля 2016

Этот код можно использовать для отображения пути в текстовом поле.

if(fileChooser.showOpenDialog(frame) == JFileChooser.APPROVE_OPTION) {
    textField.setText(fileChooser.getSelectedFile().getAbsolutePath());
}
0 голосов
/ 28 мая 2017

, используя сказанное Genhis, смотрите полный блок кода, который вы можете использовать, чтобы получить кнопку «Обзор» для размещения пути к файлу в соответствующем JTextField.

        JButton btnNewButton = new JButton("Browse");
        btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {             
            JFileChooser fc = new JFileChooser();
            fc.setCurrentDirectory(new java.io.File("C:/Users"));
            fc.setDialogTitle("File Browser.");
            fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
            if (fc.showOpenDialog(btnNewButton) == JFileChooser.APPROVE_OPTION){
                textField.setText(fc.getSelectedFile().getAbsolutePath());
            }
        }
    });
...