Problemas com SubstanceLookAndFeel e SplashScreen

0 respostas
eliangela

Olá Pessoal!

Estou usando o Substance Look and Feel no meu projeto, mas estou tendo problemas quando o meu SplashScreen vai aparecer.

Este é o código da minha classe que tem o método main().
package br.com.sistemaodontoeasy;

import br.com.sistemaodontoeasy.log.Log;
import br.com.sistemaodontoeasy.view.telas.Login;
import br.com.sistemaodontoeasy.view.telas.SplashScreen;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import org.jvnet.substance.skin.SubstanceMistAquaLookAndFeel;

/**
 *
 * @author Eliangela Menezes Palharini
 * @version 1.0
 * 01/09/2009
 */
public class Main {

    private static EntityManager em;

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(new SubstanceMistAquaLookAndFeel());
                    SplashScreen splash = SplashScreen.getSplashScreen();
                    splash.setVisible(true);
                    EntityManagerFactory emf = Persistence.createEntityManagerFactory("OdontoEasyPU");
                    em = emf.createEntityManager();

                    splash.dispose();
                    new Login().setVisible(true);
                } catch (Exception e) {
                    JOptionPane.showMessageDialog(null, "Ocorreu um erro:\n" + e.getMessage(),
                            "Erro", JOptionPane.ERROR_MESSAGE);
                    Log.executeLog(Main.class, e.getMessage(), e);
                } finally {
                    if (em != null) {
                        em.close();
                    }
                }
            }
        });
    }
}
e este é o código do meu SplashScreen
package br.com.sistemaodontoeasy.view.telas;

import br.com.sistemaodontoeasy.view.components.OdontoLabel;
import br.com.sistemaodontoeasy.view.controls.TamanhoPadrao;
import java.awt.BorderLayout;
import java.io.IOException;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;

/**
 *
 * @author Eliangela Menezes Palharini
 * @version 1.0
 * 28/09/2009
 */
public class SplashScreen extends JFrame {

    private JPanel panelFundo;
    private static SplashScreen splashScreen;

    private SplashScreen() throws IOException {
        setUndecorated(true);
        initComponents();
    }

    private void initComponents() throws IOException {
        panelFundo = new JPanel(new BorderLayout());

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setResizable(false);

        getContentPane().add(panelFundo, BorderLayout.CENTER);
        
        panelFundo.add(new OdontoLabel(new ImageIcon("img/Dente.png")), BorderLayout.CENTER);
        panelFundo.add(new OdontoLabel("Carregando aplicação..."), BorderLayout.SOUTH);

        pack();

        setLocation(TamanhoPadrao.getCenter(getHeight(), getWidth()));
    }

    public static SplashScreen getSplashScreen() throws IOException {
        if (splashScreen == null) {
            splashScreen = new SplashScreen();
        }
        return splashScreen;
    }
}

O meu problema é o seguinte:
Se eu comento a linha que seta o look and feel (UIManager.setLookAndFeel(new SubstanceMistAquaLookAndFeel());), aparece o meu splash screen perfeito.
Se eu coloco qualquer lookAndFeel Substance, aparece uma janelinha azul, sem a imagem e sem o label.

Alguém já teve um problema parecido?

Obrigada

Criado 31 de dezembro de 2009
Respostas 0
Participantes 1