gpt4 book ai didi

java - 如何在 JFileChooser 中监听 'File Name' TextField 的变化?

转载 作者:搜寻专家 更新时间:2023-11-01 03:05:48 26 4
gpt4 key购买 nike

我需要在 javax.swing.JFileChooser 中标记为“文件名”的文本字段中获取最新键入的文本。

我不需要最新选择的文件,因为输入“文件名”的文本应该作为新创建文件的名称。

我使用了 SELECTED_FILE_CHANGED_PROPERTY 但它仅在选择文件时触发。还有 FILE_FILTER_CHANGED_PROPERTY 但当我更改文件类型时它会被触发。

如何监听“文件名”文本字段的变化?

谢谢!

最佳答案

注意:SELECTED_FILE_CHANGED_PROPERTY 事件仅在选择单个项目时触发。

特别是,如果在启用多选模式的情况下选择了多个项目,则不会触发此事件。但是,如果在多选模式下选择了单个项目,则会触发此事件。

在多选模式下,无论选择了单个还是多个文件,SELECTED_FILES_CHANGED_PROPERTY 事件都会被触发。

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();
}
}
}) ;

关于java - 如何在 JFileChooser 中监听 'File Name' TextField 的变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23113239/

26 4 0