como definir o fundo JFrame transparente, mas JPanel ou JLabel Background opaco?

Como por atribuição, temos que criar um visualizador de imagens como o do Picasa. imagem no meio, fundo preto translúcido e mudança de imagens com os botões esquerdo / direito.

Eu posso exibir uma imagem definida para undercoated, defini-lo para quadro translúcido, mas junto com o quadro a imagem torna-se translúcido. O que estou fazendo de errado.

Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();   

JFrame f1 = new JFrame("ShowImage");
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f1.setSize(dim);

f1.setUndecorated(true);
f1.setOpacity(0.5f);
ShowImage panel = new ShowImage();
panel.setBackground(Color.black);

f1.setContentPane(panel); 
f1.setVisible(true);  

eu tentei

si.setOpaque();   
si.setBackground(Color.black);
si.setForeground(Color.red);

nenhum funcionou

quando eu peguei um booleano e testei

si.isDisplayable();
si.isVisible();
si.isShowing();

somente é visível retornos true, rest são false, estes são algum fator contribuinte?

questionAnswers(1)

yourAnswerToTheQuestion