注意: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();
}
}
}) ;
來源
2014-04-16 15:08:17
mok
-1,因爲博洛迪亞要添加一個監聽器。 –
@das_j>你說得對。我會更新我的答案,請稍後再查看。 – mok
非常感謝。但我需要從JFileChooser中標記爲「文件名」的textField中獲取文本。用戶可以根本不選擇任何文件,但只有類型文件名和程序應該創建這樣的文件。 –