Paint

paint-icon
Icona per Paint

Paint

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

}