ダイアログを閉じると、JFileChooser
再び開きます。入力をチェックするために libgdx update を使用しています。
ここに入力コードがあります...
if(!SaveDialog.open) {
if(input.isKeyPressed(Input.Keys.S)) {
SaveDialog.Save(pixmap);
}
}
非常に速く押している場合S
、ダイアログは 1 回だけ開きますが、2 秒程度押している場合は、無限の (私が思うに) 数のJFileChooser
ダイアログが表示されます。
これは私のコードです...
public class SaveDialog {
private static boolean inited = false;
private static JFileChooser fc;
public static boolean open = false;
public static void Init() {
fc = new JFileChooser();
fc.setFileFilter(new FileFilter() {
public String getDescription() {
return ".png";
}
public boolean accept(File f) {
return f.getName().endsWith(".png");
}
});
inited = true;
}
public static void Save(Pixmap pixmap) {
open = true;
if(!inited) {
Init();
}
fc.showSaveDialog(null);
byte[] data;
try {
data = PNG.toPNG(pixmap);
FileHandle fh = new FileHandle(fc.getSelectedFile() + ".png");
fh.writeBytes(data, false);
open = false;
}
catch (IOException e) {
open = false;
e.printStackTrace();
}
}
}
誰かがこの問題を手伝ってくれませんか。