Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9041833
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 16, 20262026-06-16T10:20:01+00:00 2026-06-16T10:20:01+00:00

I have a problem regarding updating the Jlabel,JTextArea from the code.But it is not

  • 0

I have a problem regarding updating the Jlabel,JTextArea from the code.But it is not working.

Explaination:

I have 3 classes

package chatgui4;
//worked on it
import java.io.DataInputStream;
import java.io.PrintStream;
import java.io.IOException;
import java.net.Socket;
import java.net.ServerSocket;

public class MultiThreadChatServer {

  private static ServerSocket serverSocket = null;
  private static Socket clientSocket = null;

  // This chat server can accept up to maxClientsCount clients' connections.
  private static final int maxClientsCount = 10;
  private static final clientThread[] threads = new clientThread[maxClientsCount];

  public static void main(String args[]) {

    int portNumber = 2222;

    try {
      serverSocket = new ServerSocket(portNumber);
      System.out.println("Server Started at port: 2222");
    } catch (IOException e) {
      System.out.println(e);
    }

    // Create a client socket for each connection and pass it to a new client thread
    while (true) {
      try {
        clientSocket = serverSocket.accept();
        int i ;
        for (i = 0; i < maxClientsCount; i++) {
          if (threads[i] == null) {
            (threads[i] = new clientThread(clientSocket, threads)).start();
            break;
          }
        }
      } catch (IOException e) {
        System.out.println(e);
      }//end catch
    }//end while
  }//end main
}//end public class MultiThreadChatServer

class clientThread extends Thread {

  private DataInputStream is = null;
  private PrintStream os = null;
  private Socket clientSocket = null;
  private final clientThread[] threads;
  private int maxClientsCount;
  private  String fromClient;
  boolean closed=false;

  public clientThread(Socket clientSocket, clientThread[] threads) {
    this.clientSocket = clientSocket;
    this.threads = threads;
    maxClientsCount = threads.length;    
  }

  public void run() {
   // maxClientsCount = this.maxClientsCount;
    clientThread[] threads = this.threads;

    try {
      is = new DataInputStream(clientSocket.getInputStream());
      os = new PrintStream(clientSocket.getOutputStream());
      while(!is.readLine().isEmpty()){

       fromClient = is.readLine().trim();
       //System.out.println(fromClient);
       String[] decodedFromClient=fromClient.split("@!");

       if(decodedFromClient[1].trim().equals("server")){
         if (decodedFromClient[3].trim().equals("iamonline")){
            System.out.println(decodedFromClient[0]+ " connected.");
            os.println("Server@!"+ decodedFromClient[0]+"@!Hello " + decodedFromClient[0]+ "@!all");

            for (int i = 0; i < maxClientsCount; i++) {
                if (threads[i] != null && threads[i] != this) {
                threads[i].os.println("User " + decodedFromClient[0]
                    + " entered.@!populateOnline@!"+"decodedFromClient[0]");
                }
            }
            }//end if iamonline
        else if(decodedFromClient[3].trim().equals("quit")){
           for (int i = 0; i < maxClientsCount; i++) {
            if (threads[i] != null && threads[i] != this) {
                threads[i].os.println("server@!all@!" + decodedFromClient[0]
                + " left chat room @!removeOnline@!decodedFromClient[0]");
          //from @! to @! msg @! work @! extra/whom==5
        }
      }
       }

       }//end if to server

       else {
      //while (true) {
        //String line = is.readLine();
        //String[] decodedLine=line.split("@!");
        for (int i = 0; i < maxClientsCount; i++) {
          if (threads[i] != null) {
            //threads[i].os.println(decodedFromClient[0]+"@!"+decodedFromClient[1] +"@!"+chatMsg@!" +  decodedFromClient[0]+": " + line);
              System.out.println(fromClient);
              threads[i].os.println(fromClient);
          }
        }
      //}
       }//end else if not server
}

      /*temp coment
      is.close();
      os.close();
      clientSocket.close();
      */
    } catch (IOException e) {
        System.out.println(e.getMessage());
    }
//}//close while
  }
}

iii.ClientGUI.java

package chatgui4;

import java.awt.EventQueue;
import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;

/**
 *
 * @author sulav
 */
public class ClientGUI extends javax.swing.JFrame implements Runnable {

    /**
     * Creates new form ClientGUI
     */
    private static Socket clientSocket = null;
    // The output stream
    private static PrintStream os = null;
    // The input stream
    private static DataInputStream is = null;
    private static BufferedReader inputLine = null;
    private static boolean closed = false;
    public static String uname;

    public ClientGUI() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        jTextArea1 = new javax.swing.JTextArea();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jTextField1 = new javax.swing.JTextField();
        jButton3 = new javax.swing.JButton();
        jScrollPane3 = new javax.swing.JScrollPane();
        jList2 = new javax.swing.JList();
        jLabel3 = new javax.swing.JLabel();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jMenu2 = new javax.swing.JMenu();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));

        jTextArea1.setColumns(20);
        jTextArea1.setEditable(false);
        jTextArea1.setRows(5);
        jScrollPane1.setViewportView(jTextArea1);

        jLabel1.setText("Online Users");

        jLabel2.setText("Terminal");

        jButton1.setText("Connect");
        jButton1.setMargin(new java.awt.Insets(2, 2, 2, 2));
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jButton2.setText("Disconnect");
        jButton2.setMargin(new java.awt.Insets(2, 2, 2, 2));

        jTextField1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField1ActionPerformed(evt);
            }
        });

        jButton3.setText("Send");
        jButton3.setMargin(new java.awt.Insets(2, 2, 2, 2));
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });

        jList2.setModel(new javax.swing.AbstractListModel() {
            String[] strings = { "ram", "a", "Item 3", "Item 4", "Item 5" };
            public int getSize() { return strings.length; }
            public Object getElementAt(int i) { return strings[i]; }
        });
        jScrollPane3.setViewportView(jList2);

        jLabel3.setText("jLabel3");

        jMenu1.setText("File");
        jMenuBar1.add(jMenu1);

        jMenu2.setText("Availability");
        jMenuBar1.add(jMenu2);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 269, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(24, 24, 24)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel1)
                            .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 154, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 343, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(layout.createSequentialGroup()
                                .addGap(20, 20, 20)
                                .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 220, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addGap(7, 7, 7)
                        .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 51, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jLabel2)
                        .addGap(230, 230, 230)
                        .addComponent(jButton1)
                        .addGap(11, 11, 11)
                        .addComponent(jButton2)))
                .addContainerGap(28, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(10, 10, 10)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jButton1)
                    .addComponent(jButton2)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(5, 5, 5)
                        .addComponent(jLabel2)))
                .addGap(7, 7, 7)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jLabel1)
                        .addGap(6, 6, 6)
                        .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 183, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(36, 36, 36)
                        .addComponent(jButton3))
                    .addGroup(layout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(15, 15, 15)
                        .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(23, Short.MAX_VALUE))
        );

        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-491)/2, (screenSize.height-381)/2, 491, 381);
    }// </editor-fold>                        

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        int portNumber = 2222;
        String host = "localhost";
        try {
            clientSocket = new Socket(host, portNumber);
           // System.out.println(clientSocket);
            System.out.println("connected");
            inputLine = new BufferedReader(new InputStreamReader(System.in));
            os = new PrintStream(clientSocket.getOutputStream());
            is = new DataInputStream(clientSocket.getInputStream());
            //"from @! to @! message@! type of msg";
            os.println(uname + " @! server @! " + uname + " @! iamonline");//@!@!
            this.setTitle("Talk to me: "+uname);

        } catch (UnknownHostException e) {
            System.err.println("Don't know about host " + host);
        } catch (IOException e) {
            System.err.println("Couldn't get I/O for the connection to the host "+ host);
        }


        if (clientSocket != null && os != null && is != null) {
            try {

              new Thread(new ClientGUI()).start();

            } catch (Exception e) {
                System.err.println("IOException:  " + e);
            }
        }        
    }                                        

    private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {                                            
        String typeMsg = jTextField1.getText();//@!
        String selected = jList2.getSelectedValue().toString();
        //System.out.print("msg sent to: "+selected+" "+typeMsg);
        //os.println(uname + "@!" + selected + "@!" + typeMsg + "@!msg");
        String Quit="quit";
        //System.out.println(selected);                          
        if(Quit.equalsIgnoreCase(typeMsg.trim()))
        {os.println(uname + "@!" + selected + "@!" + typeMsg + "@!quit");
        System.out.print("oi quit vo re");
        jTextArea1.append(typeMsg);
        }
        else{
        os.println(uname + "@!" + selected + "@!" + typeMsg + "@!msg");
        //System.out.print("msg sent to: "+selected+" "+typeMsg);
        jTextArea1.append(typeMsg+"\n");
        }
        jTextField1.setText("");
    }                                           

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        String typeMsg = jTextField1.getText();//@!
        String selected = jList2.getSelectedValue().toString();
        String Quit="quit";
        //System.out.println(selected);                          
        if(Quit.equalsIgnoreCase(typeMsg.trim()))
        {os.println(uname + "@!" + selected + "@!" + typeMsg + "@!quit");
        System.out.print("oi quit vo re");
        jTextArea1.append(typeMsg);
        }
        else{
        os.println(uname + "@!" + selected + "@!" + typeMsg + "@!msg");
       // System.out.print("msg sent to: "+selected+" "+typeMsg);
        jTextArea1.append(typeMsg+"\n");
        }
        jTextField1.setText("");
    }                                        

    public static void main(String args[]) {

         System.out.println("lau main() vitra po chirecha ta.achamma hai:0)");

        /*
         * Set the Nimbus look and feel
         */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /*
         * If Nimbus (introduced in Java SE 6) is not available, stay with the
         * default look and feel. For details see
         * http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(ClientGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(ClientGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(ClientGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(ClientGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /*
         * Create and display the form
         */
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new ClientGUI().setVisible(true);
                System.out.println("lau yo ni printed lol");

            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JList jList2;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JTextArea jTextArea1;
    private javax.swing.JTextField jTextField1;
    // End of variables declaration                   
String responseLine;
    @Override
    public  void run() {
        /*
         * Keep on reading from the socket till we receive "Bye" from the
         * server. Once we received that then we want to break.
         */
        System.out.println("aba yo print vayo hai");
//        String responseLine;
        try {
            while ((responseLine = is.readLine().trim()) != null) {
                String[] decodedResponseLine = responseLine.split("@!");

                if (decodedResponseLine.length == 4) {
                    if (decodedResponseLine[1].trim().equals(uname)) {
                        System.out.println("jkjlkjkljjjjjjjjjj"+java.awt.EventQueue.isDispatchThread());
                        jTextArea1.setText("aayooooooooo hai");
                        jLabel3.setText(decodedResponseLine[2].toString().trim());

                    }
                } else if (decodedResponseLine.length == 3) {
                    //jList1.
                } else if (decodedResponseLine.length == 5) {
                }

                java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                System.out.println("EDT running here "+java.awt.EventQueue.isDispatchThread());
                System.out.println("from invokelater");
                jTextArea1.append(responseLine);
                jLabel3.setText("suleman");
            }
        });
                System.out.println("jkjlkjkl"+java.awt.EventQueue.isDispatchThread());



                if (responseLine.indexOf("*** Bye") != -1) {
                    break;
                }
            }
            closed = true;
        } catch (IOException e) {
            System.err.println("IOException:  " + e);
        }
    }
}

First of all run the Multithreadchatserver class, and then run welcomescreen.sign in as ‘a’ user name and ‘a’ password if required.I think this won’t work, coz my date base in not in your computer.

Could you please tell me,why I am not able to update the JTextArea and JLabel from the code in ClientGui.java line no. 320 and 321. I will really very appreciate any help.
Thanks in advance.
God will bless you.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-16T10:20:02+00:00Added an answer on June 16, 2026 at 10:20 am

    The problem is in the ClientGUI class.

    line 193 :

    new Thread(new ClientGUI()).start()
    

    should be

    new Thread(this).start()
    

    Your code did update the UI components, and properly on the EDT, yet of a new ClientGUI which was invisible, rather than the ClientGUI that was already showing.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have the following code, and i have a problem regarding changing the ringtone
I have a cross-language problem regarding md5 :). I have this code in Java:
I have a problem regarding a JSON string grabbed from WordPress custom post meta.
I have a problem regarding StartUp Url in WPF. I have a LoginView.xaml and
I have a problem regarding the datediff MYSQL function, I can use it and
I have a problem regarding the ksoap2. My problem is that the project used
I have a problem regarding Android App. I have created an application that download
Description: I have a problem regarding DataGridView . I need to show a Client_Name
Good day everyone! I have a problem regarding my date. It needs to be
I am new to jQueryMobile. I have one problem regarding fixed headers. I have

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.