[Resolvido]Thread faz com que o JFrame fique totalmente branco

2 respostas
Tiago.Argolo

Boa tarde!

Em um JFrame, existe um determinado local para que eu insira a data e a hora separadamente.
Para que fique sempre atualizando, estou tentando utilizar Thread.

public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {

                new TelaPrincipal().setVisible(true);
                
                for (UIManager.LookAndFeelInfo laf : UIManager.getInstalledLookAndFeels()) {
                    if ("Nimbus".equals(laf.getName()))
                    {
                        try {
                            UIManager.setLookAndFeel(laf.getClassName());
                        } catch (ClassNotFoundException ex) {
                            Logger.getLogger(TelaPrincipal.class.getName()).log(Level.SEVERE, null, ex);
                        } catch (InstantiationException ex) {
                            Logger.getLogger(TelaPrincipal.class.getName()).log(Level.SEVERE, null, ex);
                        } catch (IllegalAccessException ex) {
                            Logger.getLogger(TelaPrincipal.class.getName()).log(Level.SEVERE, null, ex);
                        } catch (UnsupportedLookAndFeelException ex) {
                            Logger.getLogger(TelaPrincipal.class.getName()).log(Level.SEVERE, null, ex);
                        }
                    }
                }
                
                ThreadTempo tt = new ThreadTempo();
                tt.run();
            }
        });
    }

Ao executar, o frame fica todo branco e a Thread fica em execução. Já tentei alterar a ordem da declaração dela mas continua ficando o frame todo branco.
Só volta ao normal quando retiro o "tt.run();"

Atualmente é isto que tenho em minha Thread:

public void run() {
       
        while (true)
        {
            try
            {
               Thread.sleep(1000);
            }catch(InterruptedException e)
            {
                e.printStackTrace();
            }

            System.out.println("Teste");
        }
    }

Obrigado pela atenção!

2 Respostas

evandro.santos

Vou ser bem sincero, não olhei seu código, mas, em uma thread você não deve chamar o método run() e sim chamar o método start().

Tiago.Argolo

Humm … fato!

Erro meu. =] Obrigado.

Criado 30 de maio de 2010
Ultima resposta 30 de mai. de 2010
Respostas 2
Participantes 2