📑
ProcessingでOS独自のファイル選択ダイアログを実装する
ProcessingでSwingのFileChooserによるファイル選択画面とJava.awtによるOS独自ファイル選択画面の内容を統合し、Processing内でOS独自のファイル選択ダイアログ表示を実装した。
FileDialog.getFile()だと選択したファイル名しか返ってこないっぽいのでFileDialog.getDirectory()でディレクトリを取得して合体して呼び出している。
拡張子によるフィルタリング表示も可能なんだろうけど、よくわからず。
sketch.pde
//Citation:
//https://kousaku-kousaku.blogspot.com/2008/10/processingfilechooser.html
//https://atmarksharp.v01.jp/posts/java-os-file-dialog.html
import java.awt.*;
PImage pimage;
String filename = null;
String directory = null;
void setup() {
size(600, 600);
background(255);
}
void draw() {
}
void mousePressed() {
showAWTDialog();
}
void showAWTDialog() {
FileDialog dialog = new FileDialog(
(Frame)null,
"FileDialog (AWT)",
FileDialog.LOAD);
dialog.setVisible(true);
filename = dialog.getFile();
directory = dialog.getDirectory();
print("FileDialog (AWT): ");
if (filename != null) {
println(filename);
String ext = filename.substring(filename.lastIndexOf('.') + 1);
ext = ext.toLowerCase();
if (ext.equals("jpg") || ext.equals("png") || ext.equals("gif") || ext.equals("tga")) {
pimage = loadImage(directory + filename);
image(pimage, 0, 0, pimage.width, pimage.height);
}
} else {
println("cancelled");
}
}
Discussion