| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/12/2010 00:01:58
|
GustavoBorba
JavaChild
Membro desde: 23/11/2009 19:23:23
Mensagens: 110
Offline
|
Tenho uma classe chamada User, que é o usuário:
O método connect por sua vez cria um thread e cria o GUI. Porém o thread não fica executando, ele apenas mostra a mensagem uma vez. a Mensagem da classse Client:
porque o thread não fica executando?
Grato desde já, Gustavo Borba.
This message was edited 3 times. Last update was at 15/12/2010 00:26:01
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/12/2010 00:06:42
|
Eric Yuzo
GUJ Ranger
![[Avatar]](/images/avatar/eb2af3c11079cf65589c05c5240a1541.png)
Membro desde: 25/10/2009 20:36:30
Mensagens: 956
Localização: São Vicente - SP
Offline
|
A thread faz o que tem que fazer e encerra.
Se quiser que repita, é necessário um laço de repetição.
|
O importante mesmo é ser feliz!
DevSV |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/12/2010 00:10:36
|
GustavoBorba
JavaChild
Membro desde: 23/11/2009 19:23:23
Mensagens: 110
Offline
|
Que tipo de laço de repetição eu poderia por? Eu queria um por exemplo, enquanto o aplicativo estiver aberto, executar thread.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/12/2010 00:11:44
|
Diabo Loiro
GUJ Master
Membro desde: 24/03/2009 07:46:14
Mensagens: 1040
Localização: Praia Grande - SP
Offline
|
use um loop com uma flag.
emquando for para rodar deixa a flag com true.
quando o seu programa for encerrar seta a flag para false.
pseudo codigo
while(flag) .
This message was edited 2 times. Last update was at 15/12/2010 00:13:50
|
Sun Certified Java Associate
Sun Certified Java Programer 6.0
Sun Certified Web Component Developer
Oracle Certified Professional, Java EE 5 Business Component Developer
Blog
http://brunodanielmarinho.wordpress.com
Fals - Osum Leader
http://osum.sun.com/group/fals
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/12/2010 00:13:54
|
GustavoBorba
JavaChild
Membro desde: 23/11/2009 19:23:23
Mensagens: 110
Offline
|
Eu até já conheço o while(true) mas eu acho que ele executa muito rápido e causa que o código seguinte fique inacessível. Então coloquei ele como última cosia no método e tentei usar thread.sleep(500); mas o Netbeans diz que thread.sleep(); em loops pode causar problemas de desempenho. Como posso driblar isso?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/12/2010 00:14:40
|
Diabo Loiro
GUJ Master
Membro desde: 24/03/2009 07:46:14
Mensagens: 1040
Localização: Praia Grande - SP
Offline
|
se quiser deixar mais lento tem usar thread.sleep mesmo.
This message was edited 1 time. Last update was at 15/12/2010 00:14:48
|
Sun Certified Java Associate
Sun Certified Java Programer 6.0
Sun Certified Web Component Developer
Oracle Certified Professional, Java EE 5 Business Component Developer
Blog
http://brunodanielmarinho.wordpress.com
Fals - Osum Leader
http://osum.sun.com/group/fals
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/12/2010 00:16:34
|
GustavoBorba
JavaChild
Membro desde: 23/11/2009 19:23:23
Mensagens: 110
Offline
|
então cara, tentei o seguinte:
mas recebo essa exeção:
Exception in thread "main" java.lang.IllegalThreadStateException
teste
at java.lang.Thread.start(Thread.java:63
at application.bin.client.User.connect(User.java:23)
at application.bin.Main.main(Main.java:21)
Nessa exeção, ele diz que eu estou iniciado o thread de maneira incorreta(?)
Sobre o thread não repetir, no livro que eu estou lendo "Use a Cabeça: Java", ele mostra um simples exemplo de thread que repete e é idêntico ao meu! O que há de errado com o meu?
This message was edited 1 time. Last update was at 15/12/2010 00:22:55
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/12/2010 00:22:23
|
Eric Yuzo
GUJ Ranger
![[Avatar]](/images/avatar/eb2af3c11079cf65589c05c5240a1541.png)
Membro desde: 25/10/2009 20:36:30
Mensagens: 956
Localização: São Vicente - SP
Offline
|
O problema é que a thread está sendo iniciada mais de uma vez.
O laço deve estar no método run de seu Runnable:
|
O importante mesmo é ser feliz!
DevSV |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/12/2010 00:25:46
|
GustavoBorba
JavaChild
Membro desde: 23/11/2009 19:23:23
Mensagens: 110
Offline
|
Valeu cara!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/12/2010 00:28:44
|
Eric Yuzo
GUJ Ranger
![[Avatar]](/images/avatar/eb2af3c11079cf65589c05c5240a1541.png)
Membro desde: 25/10/2009 20:36:30
Mensagens: 956
Localização: São Vicente - SP
Offline
|
Esqueci de por no exemplo que o Thread.sleep declara InterruptedException.
Mas que bom que resolveu seu problema.
Falou...
|
O importante mesmo é ser feliz!
DevSV |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/12/2010 08:10:01
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
GustavoBorba wrote:Eu até já conheço o while(true) mas eu acho que ele executa muito rápido e causa que o código seguinte fique inacessível. Então coloquei ele como última cosia no método e tentei usar thread.sleep(500); mas o Netbeans diz que thread.sleep(); em loops pode causar problemas de desempenho. Como posso driblar isso?
Você ignora o que o Netbeans está dizendo.
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
|
|