| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/08/2006 14:41:11
|
andreiribas
JavaEvangelist
![[Avatar]](/images/avatar/39016cfe079db1bfb359ca72fcba3fd8.jpg)
Membro desde: 30/04/2006 10:43:13
Mensagens: 478
Localização: Curitiba - PR
Offline
|
galera.. tenho um problema...
fiz dois programinhas pra chat... um servidor e outro cliente.
Quando eu clico no botão conectar, lança um método que fica em um while esperando o cliente digitar alguma coisa, e fica aguardando... só que com isso, o programa pára, e não acontece mais nada... a interface gráfica dá pau... acho que essa thread tá bloqueando a thread do gui.. quer dizer.. será que eu deveria deixar essa parte do programa (do while) em uma thread separada?
|
SCJP 6.0
OCE JSP and Servlet Developer, JEE 6 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/08/2006 14:47:45
|
dudaskank
GUJ Ranger
Membro desde: 12/09/2003 14:59:26
Mensagens: 850
Localização: Suzano, SP, Brasil
Offline
|
Hmmm, acho que tem algo estranho aí...
Bem, a princípio, é sim seu laço bloqueando tudo aí, então se vc colocar numa thread separada tudo certo.
Mas já existe uma thread separada para esses eventos do teclado, e o que você precisa fazer na verdade é jogar fora seu laço while e implementar a interface KeyListener, que quando houver um evento do teclado, será chamada pra fazer alguma coisa.
Flw
|
Eduardo Oliveira
Toque a balada do amor inabalável, eterna love song de nós dois...
Página |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/08/2006 15:06:27
|
andreiribas
JavaEvangelist
![[Avatar]](/images/avatar/39016cfe079db1bfb359ca72fcba3fd8.jpg)
Membro desde: 30/04/2006 10:43:13
Mensagens: 478
Localização: Curitiba - PR
Offline
|
o código a que eu me refiro é este:
acho que ele fica passando o while pra sempre... no cliente está o mesmo código... daí eu não consigo conectar nenhum dos dois... logo sempre vai dar esse loop infinito
|
SCJP 6.0
OCE JSP and Servlet Developer, JEE 6 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/08/2006 19:29:19
|
andreiribas
JavaEvangelist
![[Avatar]](/images/avatar/39016cfe079db1bfb359ca72fcba3fd8.jpg)
Membro desde: 30/04/2006 10:43:13
Mensagens: 478
Localização: Curitiba - PR
Offline
|
ainda estou com a dúvida... agora vou disponibilizar os arquivos para quem quiser dar uma olhada... O problema é na interface gráfica, porque eu fiz essse programa pra modo texto e tudo funcionou perfeitamente...
Lmebrando que vocês tem que abrir o programa no netbeans, poruqe usa o layout do netbeans
| Nome do arquivo |
SocketClient1.java |
Download
|
| Descrição |
O arquivo do servidor |
| Tamanho |
11 Kbytes
|
| Baixado: |
154 vez(es) |
| Nome do arquivo |
Configuracoes.java |
Download
|
| Descrição |
arquivo de configurações para o programa |
| Tamanho |
7 Kbytes
|
| Baixado: |
132 vez(es) |
| Nome do arquivo |
SocketServer1.java |
Download
|
| Descrição |
O arquivo do cliente |
| Tamanho |
11 Kbytes
|
| Baixado: |
156 vez(es) |
|
SCJP 6.0
OCE JSP and Servlet Developer, JEE 6 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/08/2006 11:34:19
|
kuchma
Moderador
![[Avatar]](/images/avatar/85422afb467e9456013a2a51d4dff702.jpg)
Membro desde: 17/01/2003 19:36:16
Mensagens: 1231
Localização: Curitiba - PR
Offline
|
Nao olhei teu codigo, mas voce possivelmente esta bloqueando (ou executando uma tarefa pesada nao-GUI) na thread EventDispatcherThead (nao lembro se eh esse o nome), a thread que controla os eventos do Swing.
- Realize tarefas demoradas (ou que bloqueiam) nao-GUI em threads separadas.
- Atualize a GUI apenas na thread EDT.
- Da uma olhada nos metodos invokeAndWait e invokeLater do SwingUtilities.
- Procure por "Swing Worker" na internet (esse projeto tem uma implementacao desse "pattern": https://swingworker.dev.java.net)
Marcio Kuchma
|
E tu, Belém-Efrata, pequena demais para figurar como grupo de milhares de Judá, de ti me sairá o que há de reinar em Israel, e cujas origens são desde os tempos antigos, desde os dias da eternidade. Mq 5:2, Miquéias, 750 AC aprox. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/08/2006 17:17:33
|
andreiribas
JavaEvangelist
![[Avatar]](/images/avatar/39016cfe079db1bfb359ca72fcba3fd8.jpg)
Membro desde: 30/04/2006 10:43:13
Mensagens: 478
Localização: Curitiba - PR
Offline
|
é isso mesmo cara.
como só existia uma thread, quando o servidor inciava ele esperava uma conexão, ele bloqueava a thread do swing, daí o que eu fiz foi colcar a parte para se conectar em uma thread, daí ficou tudo bem.
Se alguém quiser é só pedir que eu disponibilizo o código
|
SCJP 6.0
OCE JSP and Servlet Developer, JEE 6 |
|
|
 |
|
|