Introduzione a Java ed Eclipse - 3 - 18

# Caricamento e disegno Immagini - il codice

- Nel file MyPanelImmagine.java scriveremo:

      package frameimmagine;

      import java.awt.Color;
      import java.awt.Dimension;
      import java.awt.Graphics;
      import java.awt.Image;
      import java.awt.Toolkit;
      import java.awt.image.ImageObserver;

      import javax.swing.JPanel;

      public class MyPanelImmagine extends JPanel implements ImageObserver {
      	private static final int WIDTH=400;
      	private static final int HEIGHT=300;

      	private static final long serialVersionUID = 1L;

      	private Image immagine;
      	private int x;
      	private int y;

      	public MyPanelImmagine() {
      		setPreferredSize(new Dimension(WIDTH, HEIGHT));
      		setBackground(new Color(0xff, 0xff, 0xcc));
      		x = WIDTH / 2;
      		y = HEIGHT / 2;
      		immagine = Toolkit.getDefaultToolkit().getImage("palla.png");
      	}

      	@Override
      	protected void paintComponent(Graphics g) {
      		super.paintComponent(g);
      		g.drawImage(immagine, x - immagine.getWidth(this) / 2,
      			y - immagine.getHeight(this) / 2, this);
      	}

      	public void eseguiAzione1() {
      		if (x > immagine.getWidth(this) / 2 &&
      				y > immagine.getHeight(this) / 2) {
      			x--;
      			y--;
      		}
      		repaint();
      	}

      	public void eseguiAzione2() {
      		if (x < WIDTH - immagine.getWidth(this) / 2 &&
      				y < HEIGHT - immagine.getHeight(this) / 2) {
      			x++;
      			y++;
      		}
      		repaint();
      	}

      	@Override
      	public boolean imageUpdate(Image arg0, int infoFlags, int x, int y,
      			int width, int heignt) {
      		repaint();
      		return (infoFlags & ALLBITS) != ALLBITS;
      	}

      }

- Nel file MyFrameImmagine.java copieremo il contenuto di MyFrameForme, cambiando solo il package, la classe del pannello e le etichette di b1 (sinistra) e b2 (destra)
- Nel main come al solito cabieremo solo il nome della classe della finestra.

© Ing. Stefano Salvi - released under FDL licence