単純なペイント プログラムを使用して BufferedImage を保存する際に問題が発生しました。先ほど描いた蛇の絵などの絵の具から画像を保存すると、ちゃんと保存されるのですが、思ったように保存されません。イメージを C:\ ドライブ (またはユーザーが使用している任意のドライブ) に保存する代わりに、イメージを Eclipse ワークスペースに保存します。もちろん、これはユーザーの主なアクセス場所に直接与える必要があるため、受け入れられません。バッファリングされた画像を保存するために使用されるメソッドは次のとおりです。
static void saveImage() {
try {
ImageIO.write(background, "png",
new File(fileName + ".png"));
} catch (IOException e) {
e.printStackTrace();
}
}
ここで、background は明らかに保存される画像、png は拡張子、fileName は以前の方法を使用して以前に保存された文字列ですが、ここでは重要ではありません。このメソッドは、イメージをEclipse ワークスペースに保存します。これは悪いです。これは、デフォルトのドライブに保存するために必要です。どうすればこれを達成できますか? 回答に役立つものが他に必要な場合はお知らせください。
編集:したがって、要求に応じて、fileName を変更するコードを次に示します。UIが全く違う別クラスで、どこまで載せればいいのか分からないので、actionListenerとgetName()
メソッドを載せます。ここで何が起こるかというとJTextField
、 aJButton
が押されると、そこから文字列が抽出され、それを として使用する がありfileName
ます。コードは次のとおりです。
`finishButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ProgramUI.fileName = getName();
ProgramUI.fileHasName = true;
ProgramUI.saveImage();
frame.dispose();
}
});
}
public String getName() {
return nameField.getText();
}
`