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 -- 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.
