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); } } }