java设置只允许EXCEl文件和world文件
时间: 2024-12-13 07:27:39 浏览: 3
在Java中,你可以使用`java.io.FileFilter`和`javax.swing.JFileChooser`来限制用户只能选择Excel(`.xls`或`.xlsx`)和Word(`.docx`)文件。以下是一个简单的示例:
```java
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
public class FileSelectionExample extends JFrame {
private JButton chooseButton;
private JFileChooser fileChooser;
public FileSelectionExample() {
// 初始化组件
fileChooser = new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
fileChooser.addChoosableFileFilter(new ExcelWordFilter());
chooseButton = new JButton("选择文件");
chooseButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int result = fileChooser.showOpenDialog(FileSelectionExample.this);
if (result == JFileChooser.APPROVE_OPTION) {
File selectedFile = fileChooser.getSelectedFile();
System.out.println("选择了文件: " + selectedFile.getAbsolutePath());
}
}
});
add(chooseButton); // 添加按钮到窗口
setSize(400, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
private static class ExcelWordFilter extends FileFilter {
@Override
public boolean accept(File file) {
String fileName = file.getName().toLowerCase();
return fileName.endsWith(".xls") || fileName.endsWith(".xlsx") || fileName.endsWith(".docx");
}
@Override
public String getDescription() {
return "Excel和Word文档";
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new FileSelectionExample());
}
}
```
在这个例子中,我们创建了一个自定义的`ExcelWordFilter`,它检查文件名是否以`.xls`, `.xlsx`, 或 `.docx` 结尾。然后在JFileChooser中设置了这个过滤器,这样只有满足条件的文件会被显示。
阅读全文