gpt4 book ai didi

java - 如何限制 JFileChooser 只允许选择特定数量的文件?

转载 作者:行者123 更新时间:2023-12-02 06:13:59 33 4
gpt4 key购买 nike

我正在为面向对象的大学类(class)创建一个“猜猜谁”游戏作为独立的期末项目,但遇到了问题。我希望我的程序能够做的一件事是让用户从计算机上传他/她自己的文件,以便在猜猜谁游戏中使用。基本上,用户单击 JRadioButton,然后 FileChooser 框将打开,以便他/她可以导航到包含文件的文件夹。我知道您可以使用 setMultiSelectionEnabled(true) 命令来选择多个文件,但是有没有办法可以将选择限制为仅 25 个图像(我的游戏板的大小)?有更简单的方法吗?我应该让用户只能选择充满图像的文件夹吗?

我想要特定文件的原因是因为我想将图像加载到 ImageIcon 数组中,并将文件名(扩展名之前)加载到数组中。

这是我到目前为止的代码:

private class fileSelector implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
JFileChooser files = new JFileChooser(); //creates a new filechooser
files.setCurrentDirectory(new File(System.getProperty("user.home"))); //starts the filechooser at the home directory
FileNameExtensionFilter filter = new FileNameExtensionFilter("*.Images", "jpg", "png", "gif"); //only allows files with these extensions to be used
files.addChoosableFileFilter(filter); //adds the filter


files.setMultiSelectionEnabled(true); //makes it so you can select multiple files!
files.showOpenDialog(null);
}

}


任何帮助都会很棒!谢谢!

最佳答案

遗憾的是他们无法做到这一点,因为这是与 ComponentUI 相关的!

@trashgod 制作 great examples here

你也可以像这样制作一个FileFilter

public class ImagesFilter extends FileFilter {

@Override
public boolean accept(File f) {
if (f.isDirectory()) {
File[] list = f.listFiles();
if (list.length == 25) {
boolean ret = true;
for (File file : list) {
ret = ret && isMyImageType(file);
}
return ret;
}
}
return false;
}

@Override
public String getDescription() {
//descripe it .
return "";
}

}

然后在JFileChooser.getIcon(File f)中覆盖它以获得一个适合您的项目的特殊图标,具有相同的类,例如:-

private final ImagesFilter filter = new ImagesFilter();
@Override
public Icon getIcon(File f) {
if (filter.accept(f))
{
//return your icon
}
return super.getIcon(f); //To change body of generated methods, choose
}

关于java - 如何限制 JFileChooser 只允许选择特定数量的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55883800/

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