gpt4 book ai didi

java - 在 OSX 窗口对话框中排除文件

转载 作者:行者123 更新时间:2023-11-30 05:42:15 24 4
gpt4 key购买 nike

我尝试从窗口对话框中排除类型文件。 what i need in my window

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 设计对应关系。但我没有找到任何代码来设置窗口打开时排除类型文件的可能性。我发现唯一的事情是使用下面的代码选择文件夹后排除文件;但我觉得这个解决方案不太好!我的目的是可以直接在窗口中看到文件是否被授权。

最佳答案

要使用文件名过滤器,您需要创建它并将其设置在文件对话框中。

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.

关于java - 在 OSX 窗口对话框中排除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55439013/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com