Manipulasi JFileChooser (Buat Gambar)


salah satu yang paling menyebalkan dalam Swing adalah JFileChooser yang gak native, alias gak seperti aplikasi2 lainnya yang menggunakan bahasa pemrograman yang native seperti Delphi, VB, Visual… dan lain sebagainya.

untuk lebih jelas coba liat ini adalah JFileChooser :

image

sedangkan dibawah ini adalah yang bukan JFileChooser :

image

salah satu yang menjadi perbedaan JFileChooser dan FileChooser yang lainnya adalah kemampuan eksplorer OS tidak dimili oleh JFileChooser, semisal kita tidak bisa menampilkan gambar secara thumnail.

nah jadi sekarang kita akan membuat atau dengan kata lain memanipulasi bentuk JFileChooser yang biasa menjadi gak seperti biasanya, hahahaha.

JFileChooser untuk Gambar

satuhal yang perlu diketahui, untuk membuat atau memanipulasi JFileChooser, kita tidak bisa memanipulasi objeknya, sehingga mau gak mau kita harus membuat subclass dari JFileChooser, baru kita manipulasi subclassnya.

import javax.swing.JFileChooser;

public class ImageChooser extends JFileChooser {
}

karena sekarang kita akan membuat JFileChooser untuk gambar, maka kita beri sebuah filter untuk menampilkan file gambarsaja. Jadi kita buat filter untuk gambar :

import java.io.File;
import javax.swing.filechooser.FileFilter;

public class ImageFilter extends FileFilter {

    @Override
    public boolean accept(File f) {
        if (f.isDirectory()) {
            return true;
        }
        String name = f.getName().toUpperCase();
        if (name.endsWith(“.JPG”) || name.endsWith(“.PNG”) || name.endsWith(“.GIF”) || name.endsWith(“.BMP”)) {
            return true;
        }
        return false;
    }

    @Override
    public String getDescription() {
        return “Image File (JPG, PNG, GIF, BMP)”;
    }
}

sekarang set image filter tersebut ke image chooser :

import javax.swing.JFileChooser;

public class ImageChooser extends JFileChooser {

    public ImageChooser() {
        super();
        setFileFilter(new ImageFilter());
    }
}

setelah itu tambahkan accessory (accessory merupakan komponen yang akan ditampilkan di pinggir kanan JFileChooser) :

import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

public class ImageChooser extends JFileChooser {

    private JLabel labelImage;

    public ImageChooser() {
        super();
        setFileFilter(new ImageFilter());

        labelImage = new JLabel(“”, JLabel.CENTER);

        JScrollPane pane = new JScrollPane(labelImage);

        JPanel panel = new JPanel(new java.awt.BorderLayout());
        panel.setPreferredSize(new java.awt.Dimension(300, 300));
        panel.add(pane);

        setAccessory(panel);

    }
}

setelah itu beri aksi untuk menampilkan gambar untuk file yang sendag dibuka :

import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

public class ImageChooser extends JFileChooser {

    private JLabel labelImage;

    public ImageChooser() {
        super();
        setFileFilter(new ImageFilter());

        labelImage = new JLabel(“”, JLabel.CENTER);

        JScrollPane pane = new JScrollPane(labelImage);

        JPanel panel = new JPanel(new java.awt.BorderLayout());
        panel.setPreferredSize(new java.awt.Dimension(300, 300));
        panel.add(pane);

        setAccessory(panel);

        addPropertyChangeListener(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY, new PropertyChangeListener() {

            public void propertyChange(PropertyChangeEvent evt) {
                if (getSelectedFile() != null) {
                    if (!getSelectedFile().isDirectory()) {
                        ImageIcon icon = new ImageIcon(getSelectedFile().getPath());
                        labelImage.setIcon(icon);
                    }
                }
            }
        });

    }
}

setelah itu, gunakan ImageChooser diatas dalam aplikasi yang kita buat. dibawah ini adalah contoh Screenshoot penggunaan ImageChooser :

image

image

eit, awas jangan liat ceweknya, hahahahah

see you at next trix

Rock with Java!!!!!!

😉

Iklan

9 pemikiran pada “Manipulasi JFileChooser (Buat Gambar)

  1. Ping balik: Belajar JaVa « WAHYU FIGHTER

  2. Ping balik: Tutorial Java dari Eko Kurniawan Khannedy « nge-WP@net

  3. Itu gambarnya kok gak relevan sama topiknya ya? Sepertinya salah masukin gambar. Tp berguna bgt, kebetulan lg cari 2 item itu (file filter & thumbnail), eh langsung ketemu 2-2 nya disini. Thanks a lot!

      • Wow, baru baca, coba, eh langsung berhasil!
        Cuma perlu ditambahi resizing gambarnya biar yang tampil cuma thumbnail/gambar kecil aja.
        Nice tutorial!

  4. adoooh gimana sih?
    saya pengen ngetes nih tapi banyak bgt file imagechooser.java nya
    yang dipake yang mana?

    tutorialnya bagus tapi ga jelas untuk nubie seperti saya

    complete code nya yang mana?
    tolong donk

    udah 3 jam lebih nyari di google tutorialnya membingungkan

    complete codenya please :O:O:O:O

  5. mas klw gambarnya sudah saya inputkan dalam database dan dimasukan pada jtable, itu untuk menampilkanya seperti apa ya mas, jadi ketika jtable diklik semua data yang di jtextfield akan tampil tapi pada filechosernya data gambarnya tidak bisa tampil, mohon bantuanya dan pencerahanya, terimakasih banyak mas…., maju terus java indonesia……,

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s