Java:JFileChooser如何在textField中显示所选文件

Ana*_*jan 4 java swing jfilechooser

我有一个JFileChooser,我能够在控制台中打印绝对路径.我需要在用户选择文件后立即在文本字段中显示FilePath.

以下是代码,请告诉我怎么做.

        public void actionPerformed(ActionEvent ae) {

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

        if (showOpenDialog != JFileChooser.APPROVE_OPTION) return;
Run Code Online (Sandbox Code Playgroud)

如果您需要任何其他细节,请告诉我.

sfr*_*frj 5

您需要监听使用JFileChooser时发生的更改,请参阅此snipet代码:

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();
        }
    }
}) ;
Run Code Online (Sandbox Code Playgroud)

在第一个条件中您需要做的就是设置文本字段的值以匹配新选择的文件名.看这个例子:

yourTextfield.setText(chooser.getSelectedFile().getName());
Run Code Online (Sandbox Code Playgroud)

要不就

yourTextfield.setText(curFile.getName());
Run Code Online (Sandbox Code Playgroud)

它是来自类File的方法getName(),它将为您提供所需的内容.帮助您自己从API文档中查看每种方法的功能.