Documente Academic
Documente Profesional
Documente Cultură
ChatdeGrupoExemplousandoJavaRMIcomumainterfacegrficadousurio
EJB Tutorial
Searchthesite
Pesquisar
Incio Java RMI via Chat Grupo Exemplo usando Java RMI com
uma interface grfica do usurio
Posts
relacionados
Como
transferir
ou copiar
ou Linux).
um arquivo
entre
computadores
usando
java RMI
Idias do
projeto
para Java
RMI:
Aplicaes
Distribudas
Java RMI
http://www.ejbtutorial.com/javarmi/groupchatexampleusingjavarmiwithagraphicaluserinterface
1/17
10/11/2015
ChatdeGrupoExemplousandoJavaRMIcomumainterfacegrficadousurio
Exemplo:
Bate-papo
Grupo de
Implementao
Java RMI
Exemplo:
Programa
simples
bate-papo
entre
servidor e
cliente
1) Server Side
Erros
comuns
para
execuo
do RMI Ol,
mundo!
Um tutorial
passo a
passo para
implementao
Java RMI
Chilrear
0
Fix-lo
http://www.ejbtutorial.com/javarmi/groupchatexampleusingjavarmiwithagraphicaluserinterface
2/17
10/11/2015
ChatdeGrupoExemplousandoJavaRMIcomumainterfacegrficadousurio
1.
2.
3.
4.
5.
6.
7.
8.
importjava.rmi.*;
importjava.util.*;
pblicointerfacedeChatServerIntestende
pblicobooleandelogin(ChatClientInt
pblicovaziopublicar(strings)lana
pblicoVectorgetConnected()lana
}
http://www.ejbtutorial.com/javarmi/groupchatexampleusingjavarmiwithagraphicaluserinterface
3/17
10/11/2015
ChatdeGrupoExemplousandoJavaRMIcomumainterfacegrficadousurio
1.
2.
3.
4.
5.
6.
importjava.rmi.*;
pblicointerfacedeChatClientIntestende
pblicovaziotell(stringnome)lana
pblicadeCordasgetName()lana
}
http://www.ejbtutorial.com/javarmi/groupchatexampleusingjavarmiwithagraphicaluserinterface
4/17
10/11/2015
ChatdeGrupoExemplousandoJavaRMIcomumainterfacegrficadousurio
1. importjava.rmi.*;
2. importjava.rmi.servidor.UnicastRemoteObject;
3. importjava.util.*;
4.
5. pblicoclasseChatServerestendeUnicastRemoteObject
6.
7.
privadoVectorv=newVector();
8.
pblicoChatServer()lanaRemoteException
9.
10.
pblicobooleandelogin(ChatClientInt
11.
Sistema.Out.Println(um.GetName
12.
um.dizer("Vocconectoucom
13.
publicar(um.getName()+"temapenas
14.
v.adicione(um);
15.
retornarverdadeiro;
16.
}
17.
18.
pblicovaziopublicar(strings)lana
19.
Sistema.Out.Println(s);
20.
para(inti=0;i<v.size();
21.
tente{
22.
ChatClientInttmp=(ChatClientInt)
23.
tmp.dizer(s);
24.
}Prendedor(exceoe){
25.
//problemacomoclientenoligado.
26.
//Melhorpararemovlo
http://www.ejbtutorial.com/javarmi/groupchatexampleusingjavarmiwithagraphicaluserinterface
5/17
10/11/2015
ChatdeGrupoExemplousandoJavaRMIcomumainterfacegrficadousurio
27.
28.
29.
30.
31.
32.
33.
34. }
}
}
pblicoVectorgetConnected()lana
retornarv;
}
1. importjava.rmi.*;
2. importjava.rmi.servidor.*;
3.
4. pblicoclasseStartServer{
5.
pblicosestticosvaziosprincipais
6.
tente{
7.
//System.setSecurityManager(newRMISecurityManager());
8.
java.rmi.registro.
9.
10.
ChatServerInt
11.
Naming.Religar
12.
Sistema.Out.
13.
}Prendedor(exceo
14.
Sistema.
15.
}
16.
}
17. }
6/17
10/11/2015
ChatdeGrupoExemplousandoJavaRMIcomumainterfacegrficadousurio
http://www.ejbtutorial.com/javarmi/groupchatexampleusingjavarmiwithagraphicaluserinterface
7/17
10/11/2015
ChatdeGrupoExemplousandoJavaRMIcomumainterfacegrficadousurio
2) do lado do cliente
1
1. importjava.rmi.*;
2. importjava.rmi.servidor.UnicastRemoteObject;
3.
4. pblicoclasseChatClientestendeUnicastRemoteObject
5.
6.
privadodeCordasnome;
7.
privadoChatUIui;
8.
pblicoChatClient(Cordasn)lana
9.
nomeie=n;
10.
}
11.
12.
pblicovaziotell(stringst)lana
13.
Sistema.Out.Println(st);
14.
ui.writeMsg(st);
15.
}
16.
pblicadeCordasgetName()lana
17.
retornarnome;
http://www.ejbtutorial.com/javarmi/groupchatexampleusingjavarmiwithagraphicaluserinterface
8/17
10/11/2015
ChatdeGrupoExemplousandoJavaRMIcomumainterfacegrficadousurio
18.
19.
20.
21.
22.
23. }
}
pblicovaziosetGUI(ChatUIt){
ui=t;
}
1. importaojavax.balano.*;
2. importaojavax.balano.fronteira.*;
3.
4. importjava.awt.*;
5. importjava.awt.evento.*;
6. importjava.rmi.Naming;
7. importjava.util.*;
8.
9. pblicoclasseChatUI{
10. privadoChatClientcliente;
11. privadoChatServerIntservidor;
12. pblicovaziodoConnect(){
13.
se(seconectar.getText().equals
14.
se(nome.getText.()comprimento
15.
se(ip.getText.()comprimento
16.
tente{
17.
client=new
18.
cliente.setGUI(este);
19.
servidor=(ChatServerInt)
20.
servidor.delogin
21.
updateUsers(servidor.
22.
conectar.setText
23.
}Prendedor(exceoe){e.PrintStackTrace
24.
}Mais{
25.
updateUsers(nulos);
26.
conectar.setText("Connect");
27.
//MelhorparaimplementarSair....
28.
}
29.
}
30.
31. pblicovazioSendText(){
32. se(seconectar.getText().equals("Connect"))
33.
JOptionPane.ShowMessageDialog(quadro,
34. }
35. Cordast=tf.GetText();
36. st="["+nome.getText()+"]"+r;
37. tf.setText("");
38. //Removesevocestiverindoparaimplementarparainvocaoremota
http://www.ejbtutorial.com/javarmi/groupchatexampleusingjavarmiwithagraphicaluserinterface
9/17
10/11/2015
ChatdeGrupoExemplousandoJavaRMIcomumainterfacegrficadousurio
39. tente{
40.
servidor.publicar(st);
41.
}Prendedor(exceoe){e.PrintStackTrace
42. }
43.
44. pblicovaziowriteMsg(stringst){tx.
45.
46. pblicosvaziosupdateUsers(Vectorv){
47. DefaultListModelListModel=newDefaultListModel
48. se(v!=nulo)para(inti=0;i<v.
49.
tente{Cadeiatmp=((ChatClientInt)
50.
ListModel.addElement
51.
}Prendedor(exceoe){e.PrintStackTrace
52. }
53. lst.setModel(ListModel);
54. }
55.
56. pblicosestticosvaziosprincipais(decorda
57.
Sistema.Out.Println("Olmundo!");
58.
ChatUIc=novaChatUI();
59. }
60.
61. //Cdigodeinterfacedousurio.
62. pblicoChatUI(){
63.
Frame=newJFrame("GroupChat");
64.
JPanelprincipais=novasJPanel
65.
JPanelsuperior=novasJPanel();
66.
JPanelcn=novasJPanel();
67.
JPanelinferior=novasJPanel();
68.
ip=newJTextField();
69.
tf=newJTextField();
70.
nomeie=newJTextField();
71.
tx=newJTextArea();
72.
conectar=newJButton("Connect");
73.
JButtonbt=newJButton("Send");
74.
lst=newJList();
75.
principal.setLayout(novoBorderLayout
76.
topo.setLayout(novoGridLayout
77.
cn.setLayout(novoBorderLayout
78.
bottom.setLayout(novoBorderLayout
79.
topo.adicione(novoJLabel("Oseu
80.
topo.adicione(novoJLabel("Endereodo
81.
topo.adicionar(ligar);
82.
cn.adicione(novoJScrollPane(tx),
83.
cn.adicione(LST,BorderLayout.
84.
bottom.adicione(tf,BorderLayout.
85.
bottom.adicione(bt,BorderLayout.
86.
principal.adicione(topo,BorderLayout.
87.
principal.adicione(cn,BorderLayout.
88.
principal.adicione(parteinferior,
89.
principal.setBorder(novoEmptyBorder
90.
//Eventos
91.
conectar.addActionListener(novo
92.
pblicovazioactionPerformed
93.
bt.addActionListener(novoActionListener
94.
pblicovazioactionPerformed
http://www.ejbtutorial.com/javarmi/groupchatexampleusingjavarmiwithagraphicaluserinterface
10/17
10/11/2015
ChatdeGrupoExemplousandoJavaRMIcomumainterfacegrficadousurio
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107. }
tf.addActionListener(novoActionListener
pblicovazioactionPerformed
quadro.setContentPane(principal);
quadro.setSize(600,600);
quadro.setVisible(verdadeiro);
}
JTextAreatx;
JTextFieldtf,ip,nome;
JButtonseconectar;
JListlst;
JFramequadro;
pode fech-lo
7
http://www.ejbtutorial.com/javarmi/groupchatexampleusingjavarmiwithagraphicaluserinterface
11/17
10/11/2015
ChatdeGrupoExemplousandoJavaRMIcomumainterfacegrficadousurio
selecione Export
http://www.ejbtutorial.com/javarmi/groupchatexampleusingjavarmiwithagraphicaluserinterface
12/17
10/11/2015
ChatdeGrupoExemplousandoJavaRMIcomumainterfacegrficadousurio
http://www.ejbtutorial.com/javarmi/groupchatexampleusingjavarmiwithagraphicaluserinterface
13/17
10/11/2015
ChatdeGrupoExemplousandoJavaRMIcomumainterfacegrficadousurio
como client.jar
4) A execuo do Servidor e
Cliente
1
http://www.ejbtutorial.com/javarmi/groupchatexampleusingjavarmiwithagraphicaluserinterface
14/17
10/11/2015
ChatdeGrupoExemplousandoJavaRMIcomumainterfacegrficadousurio
Sobre o autor
por Imed Bouchrika
Sistemas Distribudo
Java RMI
CORBA
J2EE
EJB Tutoriais
Servios web
http://www.ejbtutorial.com/javarmi/groupchatexampleusingjavarmiwithagraphicaluserinterface
15/17
10/11/2015
ChatdeGrupoExemplousandoJavaRMIcomumainterfacegrficadousurio
Quizes
Livros
Notas de curso
Pginas
Contate-nos
poltica de Privacidade
Etiquetas
13
Java
12
Programming
Distributed
Socket
J2EE
idl
XML
Communication
Books
TCP
Threaded
HTTP
xPath
3
3
2
rmi
CORBA
EJB
SOA
Servlet
1
1
Thread
Server
1
1
Searchthesite
http://www.ejbtutorial.com/javarmi/groupchatexampleusingjavarmiwithagraphicaluserinterface
rpc
TCPmon
JSP
Pesquisar
16/17
10/11/2015
ChatdeGrupoExemplousandoJavaRMIcomumainterfacegrficadousurio
http://www.ejbtutorial.com/javarmi/groupchatexampleusingjavarmiwithagraphicaluserinterface
17/17