다른 확장자를 가진 파일을 만들 프로그램을 만들고 있습니다. 이를 위해 JFileChooser
을 사용하고 있습니다. FileFilter
에 원하는 내선 만 허용하도록 설정했지만 하나를 선택하더라도 파일 이름에 내선을 직접 추가해야합니다. 어떻게 해결할 수 있습니까? 많은 감사합니다!jFileChooser로 확장 추가
0
A
답변
0
기본적으로 사용자가 대화 상자를 닫은 후에 직접 확장 프로그램을 추가해야합니다.
이 예에서는 사용자가 ".foo"또는 ".bar"로 끝나는 파일을 지정할 수 있으며 사용자가 그렇게하지 않으면 해당 확장자를 추가합니다.
JFileChooser fileChooser = new JFileChooser();
fileChooser.setMultiSelectionEnabled(false);
fileChooser.removeChoosableFileFilter(fileChooser.getAcceptAllFileFilter());
fileChooser.setFileFilter(new FileNameExtensionFilter("Files ending in .foo", "foo"));
fileChooser.setFileFilter(new FileNameExtensionFilter("Files ending in .bar", "bar"));
int option = fileChooser.showSaveDialog(null);
if (option == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
if (file!=null) {
FileFilter fileFilter = fileChooser.getFileFilter();
if (fileFilter instanceof FileNameExtensionFilter && ! fileFilter.accept(file)) {
// if the filter doesn't accept the filename, that must be because it doesn't have the correct extension
// so change the extension to the first extension offered by the filter.
FileNameExtensionFilter fileNameExtensionFilter = (FileNameExtensionFilter) fileFilter;
String extension = fileNameExtensionFilter.getExtensions()[0];
String newName = file.getName() + "." + extension;
file = new File(file.getParent(), newName);
}
System.out.println("The selected file is: " + file.getAbsolutePath());
}
}
+0
고맙습니다.하지만 직접 확장 프로그램을 추가해야합니다. Jacksess 라이브러리로 MS Access 데이터베이스를 만들려고합니다. – HaroldFinch
문제가있는 곳을 확인할 수 있도록 질문과 함께 일부 코드를 추가하십시오. –
시도 { 저장 = 새 JFileChooser(); int ReturnValue = Save.showSaveDialog (null); if (ReturnValue == JFileChooser.APPROVE_OPTION) { Base = Save.getSelectedFile(); DB = 새 DatabaseBuilder (기본) .setFileFormat (Database.FileFormat.V2010) .create(); } } catch (HeadlessException | IOException P) { System.out.println ("오류 :"+ P); System.out.println ("오류 발생 : P"); } – HaroldFinch