Я пытаюсь исключить файл типа из диалогового окна.

void setup() {
selectFolder("Select a folder to process:", "folderSelected");
}
void folderSelected(File selection) {
if (selection == null) {
println("Window was closed or the user hit cancel.");
} else {
println("User selected " + selection.getAbsolutePath());
printArray(getFolderContent(selection));
}
}
import java.io.FilenameFilter;
static final String[] exts = { ".gif", ".png", ".jpeg", ".jpg", ".tiff", ".tif"};
static final FilenameFilter pictsFilter = new FilenameFilter() {
boolean accept(File dir, String name) {
name = name.toLowerCase();
for (int i = exts.length; i-- != 0;) {
if (name.endsWith(exts[i])) {
return true;
}
}
return false;
}
};
static final File[] getFolderContent(File dir) {
return dir.listFiles(pictsFilter);
}
Я не хочу использовать JChooser, потому что это очень уродливо и старо UI. Я пытаюсь использовать FileDialog, потому что окно, используемое для отображения файлов, соответствует дизайну OSX. Но я не нахожу никакого кода, чтобы установить возможность исключения файла типа при открытом окне. Единственное, что я обнаружил, это исключить файл после выбора папки, используя этот код ниже; но я не нахожу это решение очень хорошим!
Моя цель - видеть прямо в окне, авторизован ли файл или нет.
Это может быть легко использовано с Processing для младшего программиста?




Чтобы использовать фильтр имени файла, вам нужно создать его и установить в диалоговом окне файла.
final String[] exts = { ".gif", ".png", ".jpeg", ".jpg", ".tiff", ".tif"};
FileDialog dialog = new FileDialog(frame, "select file", FileDialog.LOAD);
dialog.setFilenameFilter(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
name = name.toLowerCase();
for (int i = 0; i < exts.length; i++) {
if (name.endsWith(exts[i])) {
return true;
}
}
return false;
}}
);
Обратите внимание, что согласно javadoc:
Filename filters do not function in Sun's referenceimplementation for Microsoft Windows.
Ты волшебник, я думаю, это та же проблема, что и множественный выбор... порядок моих методов. Большое спасибо за это простое и волшебное решение.
FileDialog#setFilenameFilter? Если вам нужно что-то еще, вам, вероятно, придется взглянуть на решение на основе JNI/JNA.