Muito bom!! Valeu Flavio! Abraço
2009/12/4 Flavio Costa <[email protected]> > Pensando melhor, o ideal seria: > > public void onClick(...) { > new Thread(new Runnable() { > for (int i = 0; i < 100000; i++) { > // verifica se eh primo e... > SwingUtilities.invokeLater(new Runnable() { // exibir progresso > em B };); > } > }).start(); > } > > > 2009/12/4 Flavio Costa <[email protected]> > >> >> >> 2009/12/2 Peter P. Lupo <[email protected]> >> >>> Atualizar pode ser atualizar cada componente, todos os componentes, um >>> painel que vc tenha colocado nele, o próprio painel retornado pelo >>> getContentPane e pode ser em outra thread, na mesma thread, usando um >>> observer para quando os dados forem modificados, no redesenho da tela ou do >>> componente ou... enfim... >>> >> >> Estou tirando o atraso dessa lista e acabei passando por aqui. >> Até onde eu sei atualizações da interface (pelo menos usando Swing/AWT) só >> podem ser feitas caso o método seja invocado a partir da >> EDT<http://en.wikipedia.org/wiki/Event_dispatching_thread> >> . >> Caso você atualize sua tela em outra thread, componentes podem não ser >> renderizados ou ficarem renderizados pela metada ou qualquer outro >> comportamento randômico. Então muito cuidado ao usar threads + Swing. >> >> No próprio artigo da Wikipedia existe uma explicação do porque isso é >> problemático e como contornar o problema (caso seja realmente necessário >> executar uma atualização da sua tela a partir de uma outra thread (é só usar >> a classe SwingUtitilities). >> >> Um caso de uso seria. Imagine um botão A e uma barra de progresso B. >> Ao clicar no botão ele executa uma tarefa custosa, então o ideal e lançar >> uma thread para que isso seja feito. >> >> Ex: >> public void onClick(...) { >> // calcular todos os primos até 100000 e exibir progresso em B >> } >> >> O exemplo acima irá travar a sua interface durante o periodo do calculo e >> provavelmente só irá exibir a barra em 0% e 100%, nenhum número entre eles. >> >> public void onClick(...) { >> new Thread(new Runnable() { >> // calcular todos os primos até 100000 e exibir progresso em B >> }).start(); >> } >> >> Usando o codigo acima você provavelmente vai ter sua interface livre para >> continuar a ser usada mas a barra de progresso continua sem ser atualizada >> ou ser atualizada erroneamente (com pequenos glitchtes) >> >> public void onClick(...) { >> SwingUtilities.invokeLater(new Runnable() { >> // calcular todos os primos até 100000 e exibir progresso em B >> }); >> } >> >> Agora tudo funciona numa boa. >> >> Desculpem qualquer erro de sintaxe e coisas do gênero. >> >> >>> >>> Sem saber como vc estruturou a tela, organizou os componentes e quais >>> componentes vc quer atualizar, fica MUITO difícil adivinhar o que vc quer, >>> até pq a grd maioria deles, se vc usou uma implementação padrão, deveria >>> atualizar sozinha quando houvesse uma mudança, dependendo de como vc esteja >>> usando... >>> >>> Bom vc ter conseguido solucionar sozinho, agora não adianta vc dar 0,1 da >>> informação que a gente precisa e depois perguntar se a gente não sabe seja >>> lá o que... >>> >>> Abraço >>> >>> >>> Peter P. Lupo >>> MPS.BR Authorized Implementation Practitioner >>> Certified ScrumMaster >>> Sun Certified Java Associate >>> http://sites.google.com/site/pplupo - http://craftnicely.blogspot.com >>> +55 (021) 81742487 >>> >>> >>> 2009/12/2 Guilherme Bruzzi <[email protected]> >>> >>>> Eu acho que não dá pra atualizar todo o JFrame, acho que só dá pra >>>> atualizar cada componente ou o JPanel, e atualizar pode ser só esconder >>>> alguns elementos (o que tornaria as coisas mais fáceis) , por isso a dúvida >>>> sakow? >>>> >>>> >>>> 2009/12/2 Zaedy Sayão <[email protected]> >>>> >>>>> Bem, a galera ta tentando te ajudar e vc vem com uma resposta dessa.... >>>>> >>>>> Primeiro pra gente te ajudar a gente tem q entender direito seu >>>>> problema.... >>>>> >>>>> >>>>> []'s >>>>> >>>>> 2009/12/2 Leonardo F. Borba <[email protected]> >>>>> >>>>>> Obrigado, mas meu problema ja foi solucionado. >>>>>> >>>>>> Mas agora me ficou a duvida, ninguem aqui sabe o que eh refresh, >>>>>> atualizar, ou algo do tipo num tela??!!! >>>>>> >>>>>> abracos >>>>>> >>>>>> 2009/12/2 Peter P. Lupo <[email protected]> >>>>>> >>>>>> updateUI()? >>>>>>> >>>>>>> >>>>>>> Peter P. Lupo >>>>>>> MPS.BR <http://mps.br/> Authorized Implementation Practitioner >>>>>>> Certified ScrumMaster >>>>>>> Sun Certified Java Associate >>>>>>> http://sites.google.com/site/pplupo - >>>>>>> http://craftnicely.blogspot.com >>>>>>> +55 (021) 81742487 >>>>>>> >>>>>>> >>>>>>> 2009/12/2 Raul Barbosa <[email protected]> >>>>>>> >>>>>>> repaint()? >>>>>>>> >>>>>>>> 2009/12/2 Zaedy Sayão <[email protected]> >>>>>>>> >>>>>>>> O q vc chama de atualizacao no JFrame? >>>>>>>>> >>>>>>>>> O q vc tem nele? >>>>>>>>> >>>>>>>>> Se vc quer, por exemplo, retirar um componente q ja esta nele e >>>>>>>>> colocar outro, por exemplo, ai vc tem q fazer isso na mao. >>>>>>>>> >>>>>>>>> Agora vc pode simplesmente deixar os componentes la escondidos e so >>>>>>>>> mudar a visibilidade deles. >>>>>>>>> >>>>>>>>> Posta algum trecho de codigo do q vc ta pretendendo fazer pq esta >>>>>>>>> bem vago e estou pensando zilhoes de coisas q vc pode estar tentando >>>>>>>>> fazer. >>>>>>>>> >>>>>>>>> []'s >>>>>>>>> >>>>>>>>> 2009/12/2 Leonardo F. Borba <[email protected]> >>>>>>>>> >>>>>>>>> Professor, quero que ao existir alguma alteração na minha JFrame, >>>>>>>>>> ela seja exibida automaticamente. Procurei na documentação da Sun, e >>>>>>>>>> não >>>>>>>>>> existe um metodo que faça isso. Visitei alguns foruns e as soluções >>>>>>>>>> apresentadas eram sobre a criação de um metodo que fizesse essa >>>>>>>>>> atualização, >>>>>>>>>> ou seja, toda vez que eu quiser atualizar uma informação na tela, eu >>>>>>>>>> tenho >>>>>>>>>> que chamar um metodo criado por mim. >>>>>>>>>> >>>>>>>>>> A minha duvida era saber se essa realmente é a melhor solução, a >>>>>>>>>> criação de um metodo. >>>>>>>>>> >>>>>>>>>> 2009/12/2 Miguel Jonathan <[email protected]> >>>>>>>>>> >>>>>>>>>> Leoanrdo, >>>>>>>>>>> explique melhor o que você quer fazer, e a que método você se >>>>>>>>>>> refere, OK? >>>>>>>>>>> >>>>>>>>>>> Jonathan >>>>>>>>>>> >>>>>>>>>>> On Wed, Dec 2, 2009 at 12:51 AM, Leonardo F. Borba < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>>> estava procurando na documentação da Sun, mas não achei sobre >>>>>>>>>>>> algum metodo que atualize a minha JFrame, em foruns muitas >>>>>>>>>>>> soluções são >>>>>>>>>>>> criar esse metodo. Existe outra forma de se fazer essse refresh da >>>>>>>>>>>> JFrame ou >>>>>>>>>>>> so criando esse metodo?? >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> Leonardo F. Borba >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>>>> Google Groups "Comp 2 - Geral" group. >>>>>>>>>>>> To post to this group, send email to >>>>>>>>>>>> [email protected]. >>>>>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>>>>> [email protected]<comp2-geral%[email protected]> >>>>>>>>>>>> . >>>>>>>>>>>> For more options, visit this group at >>>>>>>>>>>> http://groups.google.com/group/comp2-geral?hl=en. >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>>> Google Groups "Comp 2 - Geral" group. >>>>>>>>>>> To post to this group, send email to >>>>>>>>>>> [email protected]. >>>>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>>>> [email protected]<comp2-geral%[email protected]> >>>>>>>>>>> . >>>>>>>>>>> For more options, visit this group at >>>>>>>>>>> http://groups.google.com/group/comp2-geral?hl=en. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Leonardo F. Borba >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>>> Groups "Comp 2 - Geral" group. >>>>>>>>>> To post to this group, send email to [email protected] >>>>>>>>>> . >>>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>>> [email protected]<comp2-geral%[email protected]> >>>>>>>>>> . >>>>>>>>>> For more options, visit this group at >>>>>>>>>> http://groups.google.com/group/comp2-geral?hl=en. >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Zaedy Dantas Sayão >>>>>>>>> Graduando em Ciência da Computação DCC/UFRJ >>>>>>>>> http://www.manufato.com.br/ >>>>>>>>> MSN: [email protected] >>>>>>>>> >>>>>>>>> -- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "Comp 2 - Geral" group. >>>>>>>>> To post to this group, send email to [email protected]. >>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>> [email protected]<comp2-geral%[email protected]> >>>>>>>>> . >>>>>>>>> For more options, visit this group at >>>>>>>>> http://groups.google.com/group/comp2-geral?hl=en. >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Raul B. Barbosa >>>>>>>> >>>>>>>> -- >>>>>>>> You received this message because you are subscribed to the Google >>>>>>>> Groups "Comp 2 - Geral" group. >>>>>>>> To post to this group, send email to [email protected]. >>>>>>>> To unsubscribe from this group, send email to >>>>>>>> [email protected]<comp2-geral%[email protected]> >>>>>>>> . >>>>>>>> For more options, visit this group at >>>>>>>> http://groups.google.com/group/comp2-geral?hl=en. >>>>>>>> >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Comp 2 - Geral" group. >>>>>>> To post to this group, send email to [email protected]. >>>>>>> To unsubscribe from this group, send email to >>>>>>> [email protected]<comp2-geral%[email protected]> >>>>>>> . >>>>>>> For more options, visit this group at >>>>>>> http://groups.google.com/group/comp2-geral?hl=en. >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Leonardo F. Borba >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Comp 2 - Geral" group. >>>>>> To post to this group, send email to [email protected]. >>>>>> To unsubscribe from this group, send email to >>>>>> [email protected]<comp2-geral%[email protected]> >>>>>> . >>>>>> For more options, visit this group at >>>>>> http://groups.google.com/group/comp2-geral?hl=en. >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Zaedy Dantas Sayão >>>>> Graduando em Ciência da Computação DCC/UFRJ >>>>> http://www.manufato.com.br/ >>>>> MSN: [email protected] >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Comp 2 - Geral" group. >>>>> To post to this group, send email to [email protected]. >>>>> To unsubscribe from this group, send email to >>>>> [email protected]<comp2-geral%[email protected]> >>>>> . >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/comp2-geral?hl=en. >>>>> >>>> >>>> >>>> >>>> -- >>>> Guilherme Heynemann Bruzzi >>>> >>>> Diretoria de Projetos >>>> >>>> EJCM – Empresa Júnior de Consultoria em Microinformática >>>> Departamento de Ciência da Computação – UFRJ >>>> www.ejcm.com.br - (21) 2598-9440 >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Comp 2 - Geral" group. >>>> >>>> To post to this group, send email to [email protected]. >>>> To unsubscribe from this group, send email to >>>> [email protected]<comp2-geral%[email protected]> >>>> . >>>> For more options, visit this group at >>>> http://groups.google.com/group/comp2-geral?hl=en. >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Comp 2 - Geral" group. >>> To post to this group, send email to [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]<comp2-geral%[email protected]> >>> . >>> For more options, visit this group at >>> http://groups.google.com/group/comp2-geral?hl=en. >>> >> >> >> >> -- >> Flávio Coutinho da Costa >> > > > > -- > Flávio Coutinho da Costa > > -- > You received this message because you are subscribed to the Google Groups > "Comp 2 - Geral" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<comp2-geral%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/comp2-geral?hl=en. > -- Leonardo F. Borba -- You received this message because you are subscribed to the Google Groups "Comp 2 - Geral" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/comp2-geral?hl=en.
