JProgressBar ao carregar LookAndFeel pesado

3 respostas
Alchemist

Bom dia pessoal tudo bem ?

Estou querendo fazer uma coisa mas eu não sei se é possivel, vamos la.

Eu estou fazendo um sisteminha aqui, onde eu estou alterando o LookAndFeel:

private void alteraLayout() {
		try {
			setUndecorated(true);
			getRootPane().setWindowDecorationStyle(JRootPane.FRAME);
			UIManager.setLookAndFeel(new com.birosoft.liquid.LiquidLookAndFeel());
			LiquidLookAndFeel.setLiquidDecorations(true, "mac");
			LiquidLookAndFeel.setShowTableGrids(true);
			LiquidLookAndFeel.setStipples(false);
			SwingUtilities.updateComponentTreeUI(this);
		} catch (Exception e) {
			JOptionPane.showMessageDialog(null, ERRO_CARREGAR_LAYOUT_APLICAÇÃO, "ERRO", JOptionPane.ERROR);
		}
	}

Como podem ver eu estou utilizando o LookAndFeel, que é aquele que se parece com os estilos do mac. O meu problema é o seguinte, ao gerar o .JAR da aplicação, quando eu cliclo duas vezes para abrir a aplicação eu sinto um enorme lentidão, isto pq ele está carregando o LookAndFeel, eu gostaria de saber se é possivel eu colocar uma JProgressBar, enquanto eu carrego o LookAndFeel. E como colocar ?

Outra coisa como eu posso colocar uma JProgressBar na espera de uma query ?

3 Respostas

Ironlynx

Alchemist,
se sua aplicação não tem look and feel dinâmicos(que podem ser mudados pelo usuário), porque vc não faz a mudança diretamente no método main da sua aplicação?

Nota: eu uso o Liquid em quase todas as aplicações minhas. Um exemplo:
try {  		
  	  JFrame.setDefaultLookAndFeelDecorated(true); //  decorar frames
  	  JDialog.setDefaultLookAndFeelDecorated(true); //decorar dialogs
  	 UIManager.setLookAndFeel("com.birosoft.liquid.LiquidLookAndFeel");
//posso aqui mudar fontes, messagesdialogs...file choosers
}catch (UnsupportedLookAndFeelException e) {
    e.printStackTrace();// handle exception
   }catch (ClassNotFoundException e) {
    e.printStackTrace();// handle exception
   }catch (InstantiationException e) {
    e.printStackTrace();// handle exception
   }catch (IllegalAccessException e) {
     e.printStackTrace();//lança exceção
   }
   SwingUtilities.invokeLater(new Runnable() {
     public void run() {
        new MeuPrincipalFrame().inicializaMeusComponentes();
     }
   });

  }//fim do método main()

E sim, vc pode usar JProgressBar nas suas queries, só cuidado com a EDT do swing.

Alchemist

Ironlynx valeu pela ajuda.

Agora sobre as querys, você teria um exemplo ai para eu ver ? pq eu nem sei por onde começar :S

Ironlynx


Agora sobre as querys, você teria um exemplo ai para eu ver ?

Aqui tem vários:
http://download.oracle.com/javase/tutorial/uiswing/components/progress.html

e há vários tópicos no guj sobre isso, dê uma pesquisada em:
http://www.guj.com.br/java/243217-usando-o-jprogressbar-para-mostrar-o-salvamento-no-bd
http://www.guj.com.br/java/227328-splash-screen

Montar a barra de progresso é fácil, mas tenha atenção com a EDT do Swing para não ter resultados desagradáveis.

Criado 4 de agosto de 2011
Ultima resposta 5 de ago. de 2011
Respostas 3
Participantes 2