Precedente Indice Successiva

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

Valid XHTML 1.0! Valid CSS!