Atualizando uma imagem contida em um JLabel - problemas

A parte do aplicativo que atualmente estou tendo problemas para chegar ao trabalho é poder percorrer e exibir uma lista de imagens, uma de cada vez. Eu estou recebendo um diretório do usuário, spooling através de todos os arquivos nesse diretório e, em seguida, carregando uma matriz de apenas os jpegs e pngs. Em seguida, quero atualizar um JLabel com a primeira imagem e fornecer botões anteriores e próximos para percorrer e exibir cada imagem por vez. Quando tento exibir a segunda imagem, ela não é atualizada ... Aqui está o que eu tenho até agora:

<code>public class CreateGallery
{
    private JLabel swingImage;
</code>

O método que estou usando para atualizar a imagem:

<code>protected void updateImage(String name) 
{
    BufferedImage image = null;
    Image scaledImage = null;
    JLabel tempImage;

    try
    {
        image = ImageIO.read(new File(name));
    } catch (IOException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    // getScaledImage returns an Image that's been resized proportionally to my thumbnail constraints
    scaledImage = getScaledImage(image, THUMB_SIZE_X, THUMB_SIZE_Y);
    tempImage = new JLabel(new ImageIcon(scaledImage));
    swingImage = tempImage;
}
</code>

Então no meu método createAndShowGUI que coloca o swingImage em ...

<code>private void createAndShowGUI() 
{
    //Create and set up the window.
    final JFrame frame = new JFrame();

    // Miscellaneous code in here - removed for brevity

    //  Create the Image Thumbnail swingImage and start up with a default image
    swingImage = new JLabel();
    String rootPath = new java.io.File("").getAbsolutePath();
    updateImage(rootPath + "/images/default.jpg");

    // Miscellaneous code in here - removed for brevity

    rightPane.add(swingImage, BorderLayout.PAGE_START);
    frame.add(rightPane, BorderLayout.LINE_END);
</code>
<code>public static void main(String[] args) 
{
    SwingUtilities.invokeLater(new Runnable() 
    {
        public void run() 
        {
            UIManager.put("swing.boldMetal", Boolean.FALSE);
            new CreateGalleryXML().createAndShowGUI();
        }
    });
}
</code>

Se você chegou até aqui, a primeira imagem é minha default.jpg, e assim que obtenho o diretório e identifico a primeira imagem nesse diretório, é aí que ele falha quando tento atualizar o swingImage. Agora, eu tentei swingImage.setVisible () e swingImage.revalidate () para tentar forçá-lo a recarregar. Eu estou supondo que é meu tempImage = novo JLabel que é a causa raiz. Mas não tenho certeza de como converter meu BufferedImage ou Image em um JLabel para apenas atualizar o swingImage.

questionAnswers(1)

yourAnswerToTheQuestion