【发布时间】:2014-09-10 01:02:39
【问题描述】:
想创建一个JFileChooser 和一个JTextField然后从任何文件夹浏览图像。给出了路径,因此它将重命名图像,图像名称将是jtextfield.getText();,然后存储在我指定的路径中。
我知道这很难实施。我做了一部分。
JFileChooser 和 jtextfield 已创建。图像存储在我指定的路径中。但它不是重命名图像。 (重命名图片应该是jtextfield.jpg)
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.io.File;
public class ImgClass {
public ImgClass() {
final JFrame frame = new JFrame("Save Image");
final JTextField username = new JTextField();
username.setBounds(105, 102, 192, 20);
frame.add(username);
username.setColumns(10);
JButton saveImage = new JButton("Browse");
saveImage.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"JPG, GIF, and PNG Images", "jpg", "gif", "png");
chooser.setFileFilter(filter);
int returnVal = chooser.showOpenDialog(frame);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = chooser.getSelectedFile();
System.out.println("You choose to open this file: "
+ file.getName());
BufferedImage image;
try {
image = ImageIO.read(file);
ImageIO.write(image, "jpg",new File("D:\\Img\\" + username.getText()+".jpg"));
} catch (IOException ex) {
Logger.getLogger(ImgClass.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
});
frame.add(saveImage);
frame.setLayout(new GridBagLayout());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
ImgClass saveImageFile = new ImgClass();
}
});
}
}
【问题讨论】:
-
java-ee 标签已移除。
-
你应该使用
showSaveDialog来保存
标签: java image swing file jfilechooser