Subscribe:

Main Menu

Rabu, Juli 17, 2013

Custom Palette(Picture Box) di Java

Semalam ada saudara yang minta di ajarin untuk menampilkan Gambar di Java netbeans. aku jadi teringat dulu pernah bikin tutorial mengenai ini.Membuat picture box di java
Setelah aku membuka kembali tutorial yang aku buat. aku sendiri kok jadi bingung implementasinya gimana... hahaha... yang bikin aja bingung, apalagi orang lain? haha...
jadi sekarang aku berniat untuk membuat ulang tutorial tersebut, semoga tutorial kali ini lebih jelas dari sebelumnya.

Berikut Step by Step dalam pembuatan picture Box di java.
  • Buat class bernama PictureBox. berikut Codenya.
import java.awt.Graphics;
import java.awt.Image;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.JDesktopPane;
public class PictureBox extends JDesktopPane{
    public static String DEFAULT = "DEFAULT";
    public static String STRETCH = "STRETCH";
    public static String CENTER = "CENTER";
    public static String SCALE = "SCALE";
    private String url;
    private File file;
    private Image image;
    private String layout = STRETCH;

    public File getFile() {
        return file;
    }


    public void setFile(File file) {
       
         try {
            this.file = file;
            this.image = ImageIO.read(file);
        } catch (IOException ex) {
            Logger.getLogger(PictureBox.class.getName()).log(Level.SEVERE, null, ex);
        }
    }


    public String getUrl() {
        return url;
    }


    public void setUrl(String url) {
        try {
            this.file =new File(url);
            this.image = ImageIO.read(file);
        } catch (IOException ex) {
            Logger.getLogger(PictureBox.class.getName()).log(Level.SEVERE, null, ex);
        }
    }


    public void setLayout(String layout) {
        this.layout = layout;
    }


    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        if (image != null) {
            if (layout.equalsIgnoreCase(STRETCH)) {
                g.drawImage(image, 0, 0, getWidth(), getHeight(), null);
            } else if (layout.equalsIgnoreCase(DEFAULT)) {
                g.drawImage(image, 0, 0, null);
            } else if (layout.equalsIgnoreCase(CENTER)) {
                g.drawImage(image, (getWidth() - image.getWidth(null)) / 2, (getHeight() - image.getHeight(null)) / 2, image.getWidth(null), image.getHeight(null), null);
            } else if (layout.equalsIgnoreCase(SCALE)) {
                int imageWidth = image.getWidth(null);
                int imageHeight = image.getHeight(null);
                int x1 = 0;
                int x2 = 0;
                int y1 = 0;
                int y2 = 0;
                if (imageWidth > imageHeight) {
                    x1 = 0;
                    x2 = getWidth();
                    y2 = (int) (((float) x2 / (float) imageWidth) * imageHeight);
                    y1 = (int) (getHeight() - y2) / 2;
                } else {
                    y1 = 0;
                    y2 = getHeight();
                    x2 = (int) (((float) y2 / (float) imageHeight) * imageWidth);
                    x1 = (int) (getWidth() - x2) / 2;
                }
                g.drawImage(image, x1, y1, x2, y2, null);
            }
        }
    }
}

  • Setelah membuat file tersebut. klik kanan filenya, pilih Tools -> Add to Palette.
  • di palette akan ada component baru yang bernama pictureBox.
  • Untuk mencobanya, buat frame baru. lalu drag and drop picture box pada frame anda.
  • untuk memberi gambarnya tulis code seperti ini.
pictureBox1.setUrl("D:/foto.jpg");

0 komentar: