 <p>Your <code>label</code> which contains the image is being replaced with <code>label123</code> in the <code>BorderLayout.CENTER</code> position, which <em>doesnt</em> have any image attached. You could use:</p> <pre><code>label123.setIcon(ii); </code></pre> <p>If you want the 2 labels to be shown, you could place the text-based <code>label123</code> in the <code>SOUTH</code> location:</p> <pre><code>jframe.add(label123, BorderLayout.SOUTH); </code></pre> <p>Note: Use <code>JLabel</code> instead of <code>Label</code>.</p>