Chat Application Code in JAVA

  1 /*
  2  * 
  3  * Save This Code as NewJFrame.java
  4  */
  5 
  6 /**
  7  *
  8  * @author Shubham
  9  */
 10 import java.awt.HeadlessException;
 11 import java.net.*;
 12 import java.io.*;
 13 import javax.swing.JOptionPane;
 14 public class NewJFrame extends javax.swing.JFrame implements Runnable {
 15 String receive,send; 
 16 Socket sock ; 
 17 BufferedReader kread;
 18  OutputStream os;
 19  PrintWriter pw;
 20  InputStream in;
 21   BufferedReader receiver;
 22   Thread t;
 23   
 24 @Override
 25   public void run()
 26   {
 27    try{
 28        while(true)
 29        {
 30     if((receive= receiver.readLine()) != null) 
 31     {
 32         jTextArea2.append("Server :"+receive+"n");
 33     }   
 34        }
 35      }
 36      catch(Exception e)
 37      {
 38      JOptionPane.showMessageDialog(this, e);
 39      }
 40   }
 41     /**
 42      * Creates new form NewJFrame
 43      */
 44     public NewJFrame() {
 45         initComponents();
 46         
 47         
 48     }
 49 
 50     /**
 51      * This method is called from within the constructor to initialize the form.
 52      * WARNING: Do NOT modify this code. The content of this method is always
 53      * regenerated by the Form Editor.
 54      */
 55     @SuppressWarnings("unchecked")
 56     // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
 57     private void initComponents() {
 58 
 59         jPanel1 = new javax.swing.JPanel();
 60         jTextField1 = new javax.swing.JTextField();
 61         jButton1 = new javax.swing.JButton();
 62         jLabel2 = new javax.swing.JLabel();
 63         jLabel4 = new javax.swing.JLabel();
 64         jLabel5 = new javax.swing.JLabel();
 65         jButton3 = new javax.swing.JButton();
 66         jLabel1 = new javax.swing.JLabel();
 67         jPanel2 = new javax.swing.JPanel();
 68         jTextField2 = new javax.swing.JTextField();
 69         jButton2 = new javax.swing.JButton();
 70         jScrollPane2 = new javax.swing.JScrollPane();
 71         jTextArea2 = new javax.swing.JTextArea();
 72         jLabel6 = new javax.swing.JLabel();
 73 
 74         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
 75         setTitle("Client");
 76 
 77         jPanel1.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true));
 78 
 79         jButton1.setText("CONNECT");
 80         jButton1.addActionListener(new java.awt.event.ActionListener() {
 81             public void actionPerformed(java.awt.event.ActionEvent evt) {
 82                 jButton1ActionPerformed(evt);
 83             }
 84         });
 85 
 86         jLabel2.setText("IP:");
 87 
 88         jLabel4.setText("STATUS");
 89 
 90         jLabel5.setText("SERVER DETAILS");
 91 
 92         jButton3.setText("DISCONNECT");
 93         jButton3.addActionListener(new java.awt.event.ActionListener() {
 94             public void actionPerformed(java.awt.event.ActionEvent evt) {
 95                 jButton3
ActionPerformed(evt);
 96             }
 97         });
 98 
 99         javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
100         jPanel1.setLayout(jPanel1Layout);
101         jPanel1Layout.setHorizontalGroup(
102             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
103             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
104                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
105                 .addComponent(jLabel2)
106                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
107                 .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 186, javax.swing.GroupLayout.PREFERRED_SIZE)
108                 .addGap(30, 30, 30))
109             .addGroup(jPanel1Layout.createSequentialGroup()

110                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
111                     .addGroup(jPanel1Layout.createSequentialGroup()
112                         .addGap(80, 80, 80)
113                         .addComponent(jLabel5))
114                     .addGroup(jPanel1Layout.createSequentialGroup()
115                         .addGap(30, 30, 30)
116                         .addComponent(jButton1)
117                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
118                         .addComponent(jButton3))
119                     .addGroup(jPanel1Layout.createSequentialGroup()
120                         .addGap(91, 91, 91)
121                         .addComponent(jLabel4)))
122                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
123         );
124         jPanel1Layout.setVerticalGroup(
125             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
126
    .addGroup(jPanel1Layout.createSequentialGroup()
127                 .addGap(27, 27, 27)
128                 .addComponent(jLabel5)
129                 .addGap(32, 32, 32)
130                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
131                     .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
132                     .addComponent(jLabel2))
133                 .addGap(36, 36, 36)
134                 .addComponent(jLabel4)
135                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 46, Short.MAX_VALUE)
136                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
137                     .addComponent(jButton1)
138                     .addComponent(jButton3))
139                 .addGap(35, 35, 35))
140         );
141 
142         jLabel1.setFont(new java.awt.Font("Viner Hand ITC", 1, 24)); // NOI18N
143         jLabel1.setText("CLIENT");
144 
145         jPanel2.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true));
146 
147         jTextField2.setName("message"); // NOI18N
148 
149         jButton2.setText("SEND");
150         jButton2.addActionListener(new java.awt.event.ActionListener() {
151             public void actionPerformed(java.awt.event.ActionEvent evt) {
152                 jButton2ActionPerformed(evt);
153             }
154         });
155 
156         jTextArea2.setColumns(20);
157         jTextArea2.setRows(5);
158         jScrollPane2.setViewportView(jTextArea2);
159 
160         jLabel6.setText("MESSAGE");
161 
162         javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
163         jPanel2.setLayout(jPanel2Layout);
164         jPanel2Layout.setHorizontalGroup(
165             jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
166             .addGroup(jPanel2Layout.createSequentialGroup()
167                 .addContainerGap()
168                 .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 251, javax.swing.GroupLayout.PREFERRED_SIZE)
169                 .addGap(0, 0, Short.MAX_VALUE))
170             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
171                 .addGap(24, 24, 24)
172                 .addComponent(jLabel6)
173                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
174                 .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
175                     .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE)
176                     .addComponent(jButton2))
177                 .addGap(23, 23, 23))
178         );
179         jPanel2Layout.setVerticalGroup(
180             jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
181             .addGroup(jPanel2Layout.createSequentialGroup()
182                 .addContainerGap(33, Short.MAX_VALUE)
183                 .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
184                     .addComponent(jTextField2, javax
.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
185                     .addComponent(jLabel6, javax.swing.GroupLayout.Alignment.TRAILING))
186                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
187                 .addComponent(jButton2)
188                 .addGap(18, 18, 18)
189                 .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 134, javax.swing.GroupLayout.PREFERRED_SIZE)
190                 .addContainerGap())
191         );
192 
193         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
194         getContentPane().setLayout(layout);
195         layout.setHorizontalGroup(
196             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
197             .addGroup(layout.createSequentialGroup()
198                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
199                     .addGroup(layout.createSequentialGroup()
200                         .addContainerGap()
201                         .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
202                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
203                         .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
204                     .addGroup(layout.createSequentialGroup()
205                         .addGap(239, 239, 239)
206                         .addComponent(jLabel1)))
207                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
208         );
209         layout.setVerticalGroup(
210             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
211             .addGroup(layout.createSequentialGroup()
212                 .addContainerGap()
213                 .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
214                 .addGap(35, 35, 35)
215                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
216                     .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
217                     .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
218                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
219         );
220 
221         pack();
222     }// </editor-fold>                        
223 
224     private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
225  send= jTextField2.getText();
226     pw.println(send);  
227     jTextArea2.append("Me:"+send+"n");
228         // TODO add your handling code here:
229     }                                        
230 
231     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
232     try{
233         String str;
234         
235         str=jTextField1.getText();
236         if(str!=null){
237        sock = new Socket(str,8089);
238         os = sock.getOutputStream();
239         pw=new PrintWriter(os,true);
240         in = sock.getInputStream();
241         receiver = new BufferedReader(new InputStreamReader(in));
242         t=new Thread(this);
243         t.start();
244         }
245         else
246         {
247             JOptionPane.showMessageDialog(this, "Please Enter Valid IP");
248         }
249     }
250         catch(IOException | HeadlessException e)
251         {
252         JOptionPane.showMessageDialog(this, e);
253         }  
254     }                                        
255 
256     private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
257 try{
258         sock.close();
259 jLabel4.setText("Disconnected ....");
260 }
261 catch(Exception e)
262     {
263     }
264     }                                        
265 
266     /**
267      * @param args the command line arguments
268      */
269     public static void main(String args[]) {
270         /* Set the Nimbus look and feel */
271         //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
272         /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
273          * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
274          */
275         try {
276             for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
277                 if ("Nimbus".equals(info.getName())) {
278                     javax.swing.UIManager.setLookAndFeel(info.getClassName());
279                     break;
280                 }
281             }
282         } catch (ClassNotFoundException ex) {
283             java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
284         } catch (InstantiationException ex) {
285             java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
286         } catch (IllegalAccessException ex) {
287             java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
288         } catch (javax.swing.UnsupportedLookAndFeelException ex) {
289             java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
290         }
291         //</editor-fold>
292 
293         /* Create and display the form */
294         java.awt.EventQueue.invokeLater(new Runnable() {
295             public void run() {
296                 new NewJFrame().setVisible(true);
297      
298                 
299                 
300             }
301         });
302     }
303     // Variables declaration - do not modify                     
304     private javax.swing.JButton jButton1;
305     private javax.swing.JButton jButton2;
306     private javax.swing.JButton jButton3;
307     private javax.swing.JLabel jLabel1;
308     private javax.swing.JLabel jLabel2;
309     private javax.swing.JLabel jLabel4;
310     private javax.swing.JLabel jLabel5;
311     private javax.swing.JLabel jLabel6;
312     private javax.swing.JPanel jPanel1;
313     private javax.swing.JPanel jPanel2;
314     private javax.swing.JScrollPane jScrollPane2;
315     private javax.swing.JTextArea jTextArea2;
316     private javax.swing.JTextField jTextField1;
317     private javax.swing.JTextField jTextField2;
318     // End of variables declaration                   
319 }

  1 /*
  2  *   Save this file as ServerJFrame1.java
  3  * auther @ : Shubham
  4  */
  5 
  6 import java.net.*;
  7 import java.io.*;
  8 import javax.swing.JOptionPane;
  9 
 10        
 11 /**
 12  *
 13  * @author SHREE
 14  */
 15 public class ServerJFrame1 extends javax.swing.JFrame implements Runnable {
 16 
 17     /**
 18      * Creates new form ServerJFrame1
 19      */
 20     
 21     ServerSocket sersock;
 22     Socket sock;
 23     OutputStream os ;
 24     PrintWriter pw ;
 25     InputStream in ;
 26     String receive, send;
 27     BufferedReader receiver;
 28     Thread t;
 29     
 30     @Override
 31     public void run()
 32     {
 33         try{
 34             in = sock.getInputStream();
 35              receiver = new BufferedReader(new InputStreamReader(in));
 36     while(true)
 37             { 
 38                 if((receive = receiver.readLine()) != null)
 39                     { 
 40                             jTextArea2.append("Client:"+receive+"n");
 41   
 42                     }
 43             }
 44         }
 45         catch(Exception e)
 46         {
 47             JOptionPane.showMessageDialog(this,e);
 48         }
 49              
 50     }
 51     public ServerJFrame1() {
 52         initComponents();
 53         
 54     }
 55 
 56     /**
 57      * This method is called from within the constructor to initialize the form.
 58      * WARNING: Do NOT modify this code. The content of this method is always
 59      * regenerated by the Form Editor.
 60      */
 61     @SuppressWarnings("unchecked")
 62     // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
 63     private void initComponents() {
 64 
 65         jPanel1 = new javax.swing.JPanel();
 66         jButton1 = new javax.swing.JButton();
 67         jLabel4 = new javax.swing.JLabel();
 68         jButton3 = new javax.swing.JButton();
 69         jPanel2 = new javax.swing.JPanel();
 70         jTextField2 = new javax.swing.JTextField();
 71         jButton2 = new javax.swing.JButton();
 72         jScrollPane2 = new javax.swing.JScrollPane();
 73         jTextArea2 = new javax.swing.JTextArea();
 74         jLabel6 = new javax.swing.JLabel();
 75 
 76         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
 77 
 78         jPanel1.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true));
 79 
 80         jButton1.setText("START SERVER");
 81         jButton1.addActionListener(new java.awt.event.ActionListener() {
 82             public void actionPerformed(java.awt.event.ActionEvent evt) {
 83                 jButton1ActionPerformed(evt);
 84             }
 85         });
 86 
 87         jLabel4.setText("STATUS");
 88 
 89         jButton3.setText("STOP SERVER");
 90         jButton3.addActionListener(new java.awt.event.ActionListener() {
 91             public void actionPerformed(java.awt.event.ActionEvent evt) {
 92                 jButton3ActionPerformed(evt);
 93             }
 94         });
 95 
 96         javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
 97         jPanel1.setLayout(jPanel1Layout);
 98         jPanel1Layout.setHorizontalGroup(
 99             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
100             .addGroup(jPanel1Layout.createSequentialGroup()
101                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
102                     .addGroup(jPanel1Layout.createSequentialGroup()
103                         .addGap(112, 112, 112)
104                         .addComponent(jLabel4))
105                     .addGroup(jPanel1Layout.createSequentialGroup()
106                         .addGap(80, 80, 80)
107                         .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
108                             .addComponent(jButton3)
109                             .addComponent(jButton1))))
110                 .addContainerGap(99, Short.MAX_VALUE))
111         );
112         jPane
l1Layout.setVerticalGroup(
113             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
114             .addGroup(jPanel1Layout.createSequentialGroup()
115                 .addGap(73, 73, 73)
116                 .addComponent(jLabel4)
117                 .addGap(32, 32, 32)
118                 .addComponent(jButton1)
119                 .addGap(18, 18, 18)
120                 .addComponent(jButton3)
121                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
122         );
123 
124         jPanel2.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true));
125 
126         jTextField2.setName("message"); // NOI18N
127 
128         jButton2.setText("SEND");
129         jButton2.addActionListener(new java.awt.event.ActionListener() {
130             public void actionPerformed(java.awt.event.ActionEvent evt) {
131                 jButton2ActionPerformed(evt);
132             }
133         });
134 
135         jTextArea2.setColumns(20);
136         jTextArea2.setRows(5);
137         jScrollPane2.setViewportView(jTextArea2);
138 
139         jLabel6.setText("MESSAGE");
140 
141         javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
142         jPanel2.setLayout(jPanel2Layout);
143         jPanel2Layout.setHorizontalGroup(
144             jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
145             .addGroup(jPanel2Layout.createSequentialGroup()
146                 .addContainerGap()
147                 .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 251, javax.swing.GroupLayout.PREFERRED_SIZE)
148                 .addGap(0, 0, Short.MAX_VALUE))
149             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
150                 .addGap(24, 24, 24)
151                 .addComponent(jLabel6)
152                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
153                 .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
154                     .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE)
155                     .addComponent(jButton2))
156                 .addGap(23, 23, 23))
157         );
158         jPanel2Layout.setVerticalGroup(
159             jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
160             .addGroup(jPanel2Layout.createSequentialGroup()
161                 .addContainerGap(33, Short.MAX_VALUE)
162                 .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
163                     .addComponent(jTextField2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
164                     .addComponent(jLabel6, javax.swing.GroupLayout.Alignment.TRAILING))
165                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
166                 .addComponent(jButton2)
167                 .addGap(18, 18, 18)
168                 .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 134, javax.swing.GroupLayout.PREFERRED_SIZE)
169                 .addContainerGap())
170         );
171 
172         javax.
swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
173         getContentPane().setLayout(layout);
174         layout.setHorizontalGroup(
175             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
176             .addGroup(layout.createSequentialGroup()
177                 .addContainerGap()
178                 .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
179                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
180                 .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
181                 .addContainerGap())
182         );
183         layout.setVerticalGroup(
184             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
185             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
186                 .addContainerGap(29, Short.MAX_VALUE)
187                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
188                     .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
189                     .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
190                 .addContainerGap())
191         );
192 
193         pack();
194     }// </editor-fold>                        
195 
196     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
197         try{
198           
199              sersock = new ServerSocket(8089);
200              jLabel4.setText("Server ready for chat...");
201              sock = sersock.accept(); 
202   
203              t=new Thread(this);
204         t.start();
205  
206            }
207         catch(Exception e)
208         {
209             JOptionPane.showMessageDialog(this, e);
210         }
211     }                                        
212 
213     private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
214         try{      
215               os = sock.getOutputStream();
216               pw = new PrintWriter(os, true);   
217               
218             send = jTextField2.getText();
219             pw.println(send); 
220             jTextArea2.append("Me:"+send+"n");
221         }
222         catch(Exception e)
223         {
224             JOptionPane.showMessageDialog(this, e);
225         }
226         // TODO add your handling code here:
227     }                                        
228 
229     private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
230 try{
231         sock.close();
232         sersock.close();
233 }
234 catch(Exception e)
235 {
236 JOptionPane.showMessageDialog(this,e);
237 }// TODO add your handling code here:
238     }                                        
239 
240     /**
241      * @param args the command line arguments
242      */
243     public static void main(String args[]) {
244         /* Set the Nimbus look and feel */
245         //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
246         /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
247          * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
248          */
249         try {
250             for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
251                 if ("Nimbus".equals(info.getName())) {
252                     javax.swing.UIManager.setLookAndFeel(info.getClassName());
253                     break;
254                 }
255             }
256         } catch (ClassNotFoundException ex) {
257             java.util.logging.Logger.getLogger(ServerJFrame1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
258         } catch (InstantiationException ex) {
259             java.util.logging.Logger.getLogger(ServerJFrame1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
260         } catc
h (IllegalAccessException ex) {
261             java.util.logging.Logger.getLogger(ServerJFrame1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
262         } catch (javax.swing.UnsupportedLookAndFeelException ex) {
263             java.util.logging.Logger.getLogger(ServerJFrame1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
264         }
265         //</editor-fold>
266 
267         /* Create and display the form */
268         java.awt.EventQueue.invokeLater(new Runnable() {
269             public void run() {
270                 new ServerJFrame1().setVisible(true);
271             }
272         });
273     }
274     // Variables declaration - do not modify                     
275     private javax.swing.JButton jButton1;
276     private javax.swing.JButton jButton2;
277     private javax.swing.JButton jButton3;
278     private javax.swing.JLabel jLabel4;
279     private javax.swing.JLabel jLabel6;
280     private javax.swing.JPanel jPanel1;
281     private javax.swing.JPanel jPanel2;
282     private javax.swing.JScrollPane jScrollPane2;
283     private javax.swing.JTextArea jTextArea2;
284     private javax.swing.JTextField jTextField2;
285     // End of variables declaration                   
286 }
287 

Output:

java_chat_application

Comments

Popular posts from this blog

MATLAB code for Circular Convolution using Matrix method

Positive number pipe in angular 2+