You are on page 1of 7

Java Syntax (Toggle Plain Text)

1. import 2. import 3. import 4. import 5. import 6. import javax.swing.*; javax.swing.event.*; java.awt.*; java.awt.event.*; java.io.*; java.net.*;

7. 8. public class CinnaChat extends JFrame 9. { 10. 11. 12. 13. 14. 15. 16. 17. 18. JLabel lblServerIP = new JLabel("Server IP:"); JTextField serverIP = new JTextField(15); JLabel lblPort = new JLabel("Port Num:"); JTextField port = new JTextField(15); JLabel lblName = new JLabel("NickName:"); JTextField name = new JTextField(15);

19. 20. JRadioButton serverBTN = new JRadioButton("Server (Host)"); 21. JRadioButton clientBTN = new JRadioButton("Client (Guest)"); 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. JButton connect = new JButton("Connect"); JButton disconnect = new JButton("Disconnect"); JTextArea messages = new JTextArea("",10,21); JTextField mssg = new JTextField(15); JButton send = new JButton("Send"); Font btn = new Font("times new roman",Font.BOLD,20); Socket skt = null;

33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68.

Socket skt2 = null; ServerSocket srvr = null; boolean server = true; public CinnaChat() { super("CinnaChat"); setSize(500,250); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); Container contentArea = getContentPane(); contentArea.setBackground(Color.lightGray); GridLayout flowManager = new GridLayout(1,2); contentArea.setLayout(flowManager); JPanel pnl = new JPanel(); pnl.add(lblServerIP); pnl.add(serverIP); pnl.add(lblPort); pnl.add(port); pnl.add(lblName); pnl.add(name); ButtonGroup type = new ButtonGroup(); type.add(serverBTN); serverBTN.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { server = true; } } );

69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104.

type.add(clientBTN); clientBTN.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { server = false; } } ); pnl.add(serverBTN); pnl.add(clientBTN); pnl.add(connect); connect.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { connect(); } } ); connect.setFont(btn); pnl.add(disconnect); disconnect.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { disconnect(); } } ); disconnect.setFont(btn); contentArea.add(pnl); JPanel pnl2 = new JPanel();

105.

pnl2.add(new JScrollPane(messages,

106. JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, 107. JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS)); 108. pnl2.add(mssg); 109. pnl2.add(send); 110. send.addActionListener( 111. new ActionListener() 112. { 113. event) 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. public void actionPerformed(ActionEvent { send(); } } ); contentArea.add(pnl2); setContentPane(contentArea); } public void connect() { try { if(server)

130. { 131. int portNum = Integer.parseInt(port.getText()); 132. srvr = new ServerSocket(portNum); 133. skt = srvr.accept(); 134. messages.append("\nServer, "+name.getText()+", has connected.\n\n"); 135. BufferedReader in = new BufferedReader(new

136. InputStreamReader(skt.getInputStream())); 137. while (!in.ready()) {} 138. messages.append(in.readLine()+"\n"); 139. in.close(); 140. 141. 142. 143. 144. skt.close(); srvr.close(); } else

145. { 146. int portNum = Integer.parseInt(port.getText()); 147. skt2 = new Socket(serverIP.getText(), portNum); 148. BufferedReader in = new BufferedReader(new 149. InputStreamReader(skt2.getInputStream())); 150. while (!in.ready()) {} 151. 152. messages.append(in.readLine()+"\n"); in.close();

153. 154. } 155. } 156. catch(Exception e1) 157. { 158. JOptionPane.showMessageDialog(null, "Error: Connection failed.\n"+ 159. Check IP Adress\n"+ 160. number.", "Error", 161. JOptionPane.ERROR_MESSAGE); 162. } 163. } "Please retry. "and the port

164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182.

public void disconnect() { try{ skt.close(); skt2.close(); srvr.close(); } catch(Exception e2) { } } public void send() { try { if(server) {

183. PrintWriter out = new PrintWriter(skt.getOutputStream(), true); 184. messages.append(name.getText() + ": mssg.getText() + "\n"); 185. out.print(name.getText() + ": " + mssg.getText() + "\n"); 186. out.close(); 187. } 188. else 189. { 190. PrintWriter out = new PrintWriter(skt2.getOutputStream(), true); 191. messages.append(name.getText() + ": mssg.getText() + "\n"); 192. out.print(name.getText() + ": " + mssg.getText() + "\n"); 193. out.close();

" +

" +

194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. }

} } catch(Exception e3) { } } public static void main (String [] args) { new CinnaChat(); }

You might also like