eh o seguinte, quando eu faço uma ação que vai demandar tempo em resposta para o usuario, estou exibindo uma mini tela de aguarde, porem, estou tentando colocar uma figura gif animada.
So que quando executo uma dessas ações so aparece a tela sem o gif, apenas no fim do processamento da ação eh que o gif eh carregado.
Ja tentei usar thread com a maxima prioridade e nada.
Alguem ja passou por este mesmo problema que o meu?
Jovem me mostre como vc fez isso que to tentando fazer isso aqui também e tá dando erro.
Se puder me mandar um email com o código eu agradeço. [email removido]
L
leopoldof
porque não tenta carregar o gif antes de lançar a thread…!!!
lucamartins
Com a Thread deveria funcionar. Você verificou se chamou o metodo Thread.start() ?
R
rickab7
Segue logo abaixo o codigo do Loading de minha aplicação:
packageplano.compra.comunicacao;importjava.awt.Frame;importjava.awt.Dimension;importjava.awt.Window;importjava.awt.Rectangle;importjava.awt.Toolkit;importjavax.swing.JLabel;importjavax.swing.ImageIcon;importjava.awt.Color;importjava.awt.Label;importjava.awt.SystemColor;importjava.awt.Font;publicclassPainelLoadingextendsThread{privateFrameframeLoading=null;// @jve:decl-index=0:visual-constraint="244,19"privateWindowwindowLoading=null;privateLabeltextoLoading=null;privateJLabeltextoGif=null;publicvoidrun(){getWindowLoading();}publicvoiddestruir(){frameLoading.setVisible(false);frameLoading.addWindowListener(newjava.awt.event.WindowAdapter(){publicvoidwindowClosing(java.awt.event.WindowEvente){System.out.println("windowClosing()");// TODO Auto-generated Event stub windowClosing()}});frameLoading=null;windowLoading.setVisible(false);windowLoading.addWindowListener(newjava.awt.event.WindowAdapter(){publicvoidwindowClosing(java.awt.event.WindowEvente){System.out.println("windowClosing()");// TODO Auto-generated Event stub windowClosing()}});windowLoading=null;}/** * This method initializes frameLoading * * @return java.awt.Frame */privateFramegetFrameLoading(){if(frameLoading==null){textoGif=newJLabel();textoGif.setBounds(newRectangle(50,114,132,30));textoGif.setIcon(newImageIcon(getClass().getResource("/plano/compra/comunicacao/imagens/loading.gif")));textoGif.setText("");textoLoading=newLabel();textoLoading.setBounds(newRectangle(9,44,237,80));textoLoading.setForeground(SystemColor.activeCaptionText);textoLoading.setFont(newFont("Comic Sans MS",Font.BOLD,48));textoLoading.setText("Aguarde...");frameLoading=newFrame();frameLoading.setLayout(null);frameLoading.setSize(newDimension(250,150));frameLoading.setTitle("Aguarde...");frameLoading.setVisible(true);frameLoading.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/plano/compra/comunicacao/imagens/icon.jpg")));frameLoading.setBackground(newColor(51,153,0));frameLoading.setResizable(false);frameLoading.add(textoLoading,null);frameLoading.add(textoGif,null);frameLoading.addWindowListener(newjava.awt.event.WindowAdapter(){publicvoidwindowClosing(java.awt.event.WindowEvente){System.out.println("windowClosing()");// TODO Auto-generated Event stub windowClosing()}});frameLoading.setLocationRelativeTo(null);}returnframeLoading;}/** * This method initializes windowLoading * * @return java.awt.Window */privateWindowgetWindowLoading(){if(windowLoading==null){windowLoading=newWindow(getFrameLoading());windowLoading.setLocationRelativeTo(null);windowLoading.setVisible(true);windowLoading.addWindowListener(newjava.awt.event.WindowAdapter(){publicvoidwindowClosing(java.awt.event.WindowEvente){System.out.println("windowClosing()");// TODO Auto-generated Event stub windowClosing()}});}returnwindowLoading;}}
Carregar o gif antes não tem como por que está no objeto.