[Resolvido]SplashScreen não mostra a imagem

5 respostas
vtr002
public class SplashScreen extends JWindow
{
	private static final long serialVersionUID = 1L;



	
	public SplashScreen()
	{
		ClassLoader cl = ClassLoader.getSystemClassLoader();
		
		ImageIcon ii = null;
		try{
			ImageIcon bi=new ImageIcon(getClass().getResource("imagens/Sistema/splash.PNG"));

			ii=new ImageIcon((bi).getImage().getScaledInstance(400, 400, Image.SCALE_SMOOTH));
		}catch(Exception e){
			e.printStackTrace();
		}
		
		try
		{
			setSize(ii.getIconWidth(),ii.getIconHeight());
			Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
			Dimension size = getSize();
			
			JLabel image = new JLabel(ii);
			
			getContentPane().add(image);
			if (size.width > screenSize.width)
				size.width = screenSize.width;

			if (size.height > screenSize.height)
				size.height = screenSize.height;

			setLocation((screenSize.width - size.width) / 2, (screenSize.height - size.height) / 2);
			setVisible(true);

		}
		catch(Exception exception)
		{
			exception.printStackTrace();
		}
		
	}

}

Minha Splash apenas congela a imagem na area que devia aparecer, e não aparece a imagem, mas quando vejo pelo o WindowsBuilder a imagem aparece.
O que pode estar errado?

5 Respostas

N

Não dá erro nenhum no teu console? Já debugou e verificou se ImageIcon bi tem conteúdo depois de inicializada?

Abs

vtr002

Verifiquei, todas as variaveis até o setVisible(True) estão certas, verifiquei pelo debug do Eclipse.
A Imagem existe, aparece como deveria ficar no WindowsBuilder, mas na hora de executar ela some.

E

Suponha que a classe SplashScreen esteja no pacote br.com.exemplo.utils.

A seguinte linha:

ImageIcon bi=new ImageIcon(getClass().getResource("imagens/Sistema/splash.PNG"));

supõe que a imagem esteja em br/com/exemplo/utils/imagens/Sistema/splash.PNG

(veja o .jar que você gerou e veja se, dentro desse .jar (que você pode analisar renomeando-o para .zip e verificando que diretórios estão nele) está esse arquivo exatamente com esse nome e sequencia de diretórios (cuidado, “splash.PNG” é diferente de “splash.png” para o getResource, que leva em conta a diferença entre minúsculas e maiúsculas).

vtr002

@entanglement
A imagem está no local certo, eo nome é realmente esse.
é “splash.PNG” que está dentro da JAR

vtr002

A imagem aparece quando crio uma nova aplicação, meu projeto deve estar com algum outro erro.
Valeu

Criado 30 de novembro de 2012
Ultima resposta 5 de dez. de 2012
Respostas 5
Participantes 3