

Main.java
private JLabel lblImmagine;
private BufferedImage immagine;
...
// metodi associati agli eventi
public void nuovo() {
immagine = new BufferedImage(800, 600, BufferedImage.TYPE_INT_RGB);
lblImmagine.setIcon(new ImageIcon(immagine));
}
public void apri() {
immagine = BufferedImageIO.read();
lblImmagine.setIcon(new ImageIcon(immagine));
}
public void salva() {
BufferedImageIO.write(immagine);
}
BufferedImageIO.java
package paint;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileNameExtensionFilter;
public class BufferedImageIO {
public static BufferedImage read() {
BufferedImage immagine = null;
JFileChooser fc = new JFileChooser();
fc.setAcceptAllFileFilterUsed(false);
fc.addChoosableFileFilter(new FileNameExtensionFilter("Tutti i file immagine (*.gif; *.jpg; *.jpeg; *.png)", "gif", "jpg", "jpeg", "png"));
fc.setAcceptAllFileFilterUsed(true);
if (fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)
try {
immagine = ImageIO.read(fc.getSelectedFile());
// JOptionPane.showMessageDialog(null, "Immagine caricata", "Informazione", JOptionPane.INFORMATION_MESSAGE);
} catch (FileNotFoundException e) {
JOptionPane.showMessageDialog(null, "File non trovato", "Errore", JOptionPane.ERROR_MESSAGE);
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "Errore di lettura", "Errore", JOptionPane.ERROR_MESSAGE);
}
return immagine;
}
public static void write(BufferedImage immagine) {
JFileChooser fc = new JFileChooser();
fc.setAcceptAllFileFilterUsed(false);
fc.addChoosableFileFilter(new FileNameExtensionFilter("Formato PNG (*.png)", "png"));
fc.setAcceptAllFileFilterUsed(true);
if (fc.showSaveDialog(null) == JFileChooser.APPROVE_OPTION)
try {
if (!fc.getSelectedFile().getPath().endsWith(".png"))
fc.setSelectedFile(new File(fc.getSelectedFile().getPath() + ".png"));
ImageIO.write(immagine, "png", fc.getSelectedFile());
JOptionPane.showMessageDialog(null, "Immagine salvata", "Informazione", JOptionPane.INFORMATION_MESSAGE);
} catch (FileNotFoundException e) {
JOptionPane.showMessageDialog(null, "File non trovato", "Errore", JOptionPane.ERROR_MESSAGE);
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "Errore di scrittura", "Errore", JOptionPane.ERROR_MESSAGE);
}
}
}