Como exibir uma imagem em um quadro?

Estou codificando um gui e queria usar o embedde algumas fotos, mas antes de inseri-lo no meu programa principal, escrevi o código para testá-lo:

    public class guikopie extends javax.swing.JFrame{
        public guikopie() {
            a = new javax.swing.JLabel();
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
            a.setIcon(new javax.swing.ImageIcon("C:\\Users\\Public\\Pictures\\Sample Pictures\\Tulpen.jpg"));       
            add(a);//here i add it to the jlabel
            pack();
        }

        public static void main(String args[]){
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new guikopie().setVisible(true);
                }
            });
        }

        private javax.swing.JLabel a;
    }

Minha pergunta é: Por que esse código não exibe a imagem?

questionAnswers(2)

yourAnswerToTheQuestion