Menambahkan Image Pada JLabel

Pukul 16.27, di kantor, niat mau nyelesaikan segala kerjaan, malah nge-blank. So, daripada gak ngapa-ngapain, aku bikin postingan ini... (ini bukan alibi lho ya, ini beneran... :D)

*****

Beberapa waktu lalu, aku bikin modul praktikum tentang JLabel. Kemarin ada satu permasalahan, yaitu aku gak bisa memasang gambar pada JLabel dengan sintaks ini:

Icon icon = new ImageIcon("/image/lock.png");
JLabel label = new JLabel();
label.setIcon(icon);

Entah kenapa, gambar tidak bisa ditampilkan juga (padahal dalam document java, seharusnya penulisan sintaks seperti itu pun bisa). So, setelah mencari kesana kemari, dapat solusi lain di situs stackoverflow (one stop solution buat para programmer kayanya nih.. :D).



Di bawah ini contoh program yang dibuat:

public class CobaLogin extends JFrame implements ActionListener{
    JTextField txtUser;
    JPasswordField txtPassword;
    JButton button;
    JLabel label1, label2, label3;
    JPanel panel1;

    public CobaLogin() {
        super("Form Login");
        
        Container c = getContentPane();
        c.setLayout(new FlowLayout(FlowLayout.CENTER, 20, 20));
        
        URL url = getClass().getResource("/ex/image/lock.png");
        Icon icon = new ImageIcon(url);
        
        label1 = new JLabel("Silakan Login Terlebih Dahulu");
        label1.setIcon(icon);
        label1.setHorizontalTextPosition(SwingConstants.CENTER);
        label1.setVerticalTextPosition(SwingConstants.TOP);
        c.add(label1);
        
        //panel
        label2 = new JLabel("Username");
        txtUser = new JTextField(10);
        label3 = new JLabel("Password");
        txtPassword = new JPasswordField(10);
        panel1 = new JPanel(new GridLayout(2, 2));
        panel1.add(label2);
        panel1.add(txtUser);
        panel1.add(label3);
        panel1.add(txtPassword);
        c.add(panel1);
        
        button = new JButton("Login");
        button.addActionListener(this);
        c.add(button);
        
        setSize(320,300);
        setVisible(true);
        
    }

    @Override
    public void actionPerformed(ActionEvent ae) {
        if(ae.getSource() == button){
            JOptionPane.showMessageDialog(null, "Berhasil login");
        }
    }     
}

Dari program di atas bisa kita lihat, untuk menampilkan gambar, kita simpan terlebih dahulu path gambar tersebut dengan sintaks URL url = getClass().getResource("/ex/image/lock.png");. Kemudian, barulah variable url tersebut dipanggil di method setIcon().


Komentar