Desenvolvendo splash screens para suas aplicações
Esta dica de Swing apresenta um método de executar sua própria tela de apresentacao. Ela é uma aplicação simples, útil mostrar uma imagem do título do programa no centro da tela durante a quantidade de tempo passada no construtor. Esta classe inclui um método main() para testar a tela de apresentacao.
|
<B><SPAN >import </SPAN></B><SPAN >java.awt.*;</SPAN>
<B><SPAN >import </SPAN></B><SPAN >javax.swing.*;</SPAN>
<B><SPAN >public class </SPAN></B><SPAN >SplashScreen </SPAN><B><SPAN >extends </SPAN></B><SPAN >JWindow {</SPAN>
<B><SPAN >private int </SPAN></B><SPAN >duration;</SPAN>
<B><SPAN >public </SPAN></B><SPAN >SplashScreen(</SPAN><B><SPAN >int </SPAN></B><SPAN >d) {</SPAN>
<SPAN >duration = d;<BR></SPAN><SPAN >}</SPAN>
<SPAN >// Este é um</SPAN> <SPAN >método simples para mostrar uma tela de apresentção </SPAN>
<SPAN >// no centro da tela durante a quantidade de tempo passada no construtor</SPAN>
<B><SPAN >public void </SPAN></B><SPAN >showSplash() {</SPAN>
<SPAN >JPanel content = (JPanel)getContentPane();</SPAN>
<SPAN >content.setBackground(Color.white);</SPAN>
<SPAN >// Configura a posição e o tamanho da janela</SPAN>
<B><SPAN >int </SPAN></B><SPAN >width = </SPAN><SPAN >450</SPAN><SPAN >;</SPAN>
<B><SPAN >int </SPAN></B><SPAN >height =</SPAN><SPAN >115</SPAN><SPAN >;</SPAN>
<SPAN >Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();</SPAN>
<B><SPAN >int </SPAN></B><SPAN >x = (screen.width-width)/</SPAN><SPAN >2</SPAN><SPAN >;</SPAN>
<B><SPAN >int </SPAN></B><SPAN >y = (screen.height-height)/</SPAN><SPAN >2</SPAN><SPAN >;</SPAN>
<SPAN >setBounds(x,y,width,height);</SPAN>
<SPAN >// Constrói o splash screen</SPAN>
<SPAN >JLabel label = </SPAN><B><SPAN >new </SPAN></B><SPAN >JLabel(</SPAN><B><SPAN >new </SPAN></B><SPAN >ImageIcon(</SPAN><SPAN >"devmedia.gif"</SPAN><SPAN >));</SPAN>
<SPAN >JLabel copyrt = </SPAN><B><SPAN >new </SPAN></B><SPAN >JLabel</SPAN>
<SPAN >(</SPAN><SPAN >"Copyright 2006, DevMedia"</SPAN><SPAN >, JLabel.CENTER);</SPAN>
<SPAN >copyrt.setFont(</SPAN><B><SPAN >new </SPAN></B><SPAN >Font(</SPAN><SPAN >"Sans-Serif"</SPAN><SPAN >, Font.BOLD, </SPAN><SPAN >12</SPAN><SPAN >));</SPAN>
<SPAN >content.add(label, BorderLayout.CENTER);</SPAN>
<SPAN >content.add(copyrt, BorderLayout.SOUTH);</SPAN>
<SPAN >Color oraRed = </SPAN><B><SPAN >new </SPAN></B><SPAN >Color(</SPAN><SPAN >156</SPAN><SPAN >, </SPAN><SPAN >20</SPAN><SPAN >, </SPAN><SPAN >20</SPAN><SPAN >, </SPAN><SPAN >255</SPAN><SPAN >);</SPAN>
<SPAN >content.setBorder(BorderFactory.createLineBorder(oraRed, </SPAN><SPAN >10</SPAN><SPAN >));</SPAN>
<SPAN >// Torna visível</SPAN>
<SPAN >setVisible(</SPAN><B><SPAN >true</SPAN></B><SPAN >);</SPAN>
<SPAN >// Espera ate que os recursos estejam carregados</SPAN>
<B><SPAN >try </SPAN></B><SPAN >{ Thread.sleep(duration); } </SPAN><B><SPAN >catch </SPAN></B><SPAN >(Exception e) {}</SPAN>
<SPAN >setVisible(</SPAN><B><SPAN >false</SPAN></B><SPAN >);</SPAN>
<SPAN >}</SPAN>
<B><SPAN >public void </SPAN></B><SPAN >showSplashAndExit() {</SPAN>
<SPAN >showSplash();</SPAN>
<SPAN >System.exit(</SPAN><SPAN >0</SPAN><SPAN >);</SPAN>
<SPAN >}</SPAN>
<B><SPAN >public static void </SPAN></B><SPAN >main(String[] args) {</SPAN>
<SPAN >// Mostra uma imagem com o título da aplicação </SPAN>
<SPAN >SplashScreen splash = </SPAN><B><SPAN >new </SPAN></B><SPAN >SplashScreen(</SPAN><SPAN >10000</SPAN><SPAN >);</SPAN>
<SPAN >splash.showSplashAndExit();</SPAN>
<SPAN >}</SPAN>
<SPAN >}</SPAN>
|