_private void openMenuActionPerformed(Java.awt.event.ActionEvent evt) {
DBmanager db = new DBmanager();
if (!db.getCurrentUser().equals("Admin")) {
JOptionPane.showMessageDialog(this, "You are Not Allowed to Run Applications");
JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("PDF Documents", "pdf"));
fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("MS Office Documents", "docx", "xlsx", "pptx"));
fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("Images", "jpg", "png", "gif", "bmp"));
fileChooser.setAcceptAllFileFilterUsed(false);
int returnVal = fileChooser.showOpenDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
if (Desktop.isDesktopSupported()) {
try {
Desktop.getDesktop().open(file);
} catch (Exception e) {
e.printStackTrace();
}
}
}
} else if (db.getCurrentUser().equals("Admin")) {
JFileChooser fileChooser = new JFileChooser();
fileChooser.setAcceptAllFileFilterUsed(true);
int returnVal = fileChooser.showOpenDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
if (Desktop.isDesktopSupported()) {
try {
Desktop.getDesktop().open(file);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}// TODO add your handling code here:
}
_
こんにちは.... fileChooser.setAcceptAllFileFilterUsed(false);
を設定して、ファイルフィルターでファイルをフィルターしようとしています。 「すべてのファイル」オプションはFileChooser
から消えますが、PDFドキュメント、ms Officeまたは画像からオプションを選択しない限り、すべてのファイルは表示されたままです。ファイルチューザを開いたときのカスタムフィルタ。
たとえば、JFileChooser
をフィルタリングして、最も一般的に見られる画像ファイルを厳密に表示するには、次のようにします。
FileNameExtensionFilter filter = new FileNameExtensionFilter("Image Files", "jpg", "png", "gif", "jpeg");
JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileFilter(filter);
最初の引数は説明(下部で選択したときに表示されるもの)であり、2番目の引数は非公式のファイル拡張子です。
FileNameExtensionFilter
を使用して、許可された拡張子をFileChooser
ダイアログに追加できます。次に例を示します。
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"JPG & GIF Images", "jpg", "gif");
chooser.setFileFilter(filter);
詳細については、Javadocsを参照してください: FileNameExtensionFilter
これはJava8.1で正常に動作します
JFileChooser dbfilechooser = new JFileChooser();
FileNameExtensionFilter filter1 =
new FileNameExtensionFilter("xls","xls");
FileNameExtensionFilter filter2 =
new FileNameExtensionFilter("xlsx", "xlsx");
FileNameExtensionFilter filter3 =
new FileNameExtensionFilter("csv", "csv");
dbfilechooser.addChoosableFileFilter(filter1);
dbfilechooser.addChoosableFileFilter(filter2);
dbfilechooser.addChoosableFileFilter(filter3);
私の場合、私は
setFileFilter(
new FileNameExtensionFilter("Default file filter", ...)
);
メソッドへの他のすべての呼び出しの後
addChoosableFileFilter(...);
setAcceptAllFileFilterUsed(false)を機能させるため。