java - Text not visible in my multi client chat GUI application? -




edit have implemented multi client chat server transform emergency response 'server-clients' ad hoc network. currently, program , running in chat window typing in text box not appearing in eventlog (neither of clients or server). don't know causing error?

how should resolve issue?

here part of code:

public class servergui extends jframe implements actionlistener, windowlistener{      private static final long serialversionuid =1l;     // stop , start buttons     private jbutton stopstart;     // jtextarea communication interface     private jtextarea commwin, eventlog;     // port number     private jtextfield tport;     // server     private vserver serv;      // server constructor // // // //               commwin = new jtextarea(120,120);         commwin.seteditable(false);         appendcomm("vanet communication window.\n");         middle.add(new jscrollpane(commwin));          eventlog = new jtextarea(120,120);         eventlog.seteditable(false);         appendevent("events log.\n");         middle.add(new jscrollpane(eventlog));          add(middle); // // //     }      // append message 2 jtextarea     void appendcomm(string str){         commwin.append(str);         commwin.setcaretposition(commwin.gettext().length() -1);     }      void appendevent(string str){         eventlog.append(str);         eventlog.setcaretposition(commwin.gettext().length() -1);     }      // start or stop when clicked     public void actionperformed(actionevent e){         if(serv !=null){             serv.stop();             serv = null;             tport.seteditable(true);             stopstart.settext("start");             return;         }          int port;         try{             port = integer.parseint(tport.gettext().trim());         } catch(exception ex) {             appendevent("invalid port number");             return;         }          // create new server         serv = new vserver(port, this);         // , start thread         new serverrunning().start();         stopstart.settext("stop");         tport.seteditable(false);     }      // entry point start server     public static void main(string[] arg){         // start server @ default port         new servergui(1234);     }      // in case x clicked, application closes     // connection needs closed free port     public void windowclosing(windowevent e){         if(serv != null){             try{                 serv.stop();             } catch(exception ec) {}             serv = null;         }          // dispose frame         dispose();         system.exit(0);     }      // ignore other windowlistener methods      // thread run server     class serverrunning extends thread {         public void run(){             serv.start();             // in case server fails             stopstart.settext("start");             tport.seteditable(true);             appendevent("server crashed\n");             serv = null;         }     } } 

some parts of clientgui.java :

// //  public class clientgui extends jframe implements actionlistener {      private static final long serialversionuid =1l;     private jlabel label;     private jtextfield tfield;     private jtextfield tfieldserv, tport;     private jbutton signin, signoff, activenodes;     private jtextarea tarea;     private boolean connected;     private vclient client;     private int defaultport;     private string defaulthost;      // constructor receiving socket number     clientgui(string host, int port){ // //         // upper panel         jpanel upperpanel = new jpanel(new gridlayout(3,1));         // server name , port number         jpanel serverport = new jpanel(new gridlayout(1,5, 1,3));         // 2 jtextfield default value server address , port number         tfieldserv = new jtextfield(host);         tport = new jtextfield("" + port);         tport.sethorizontalalignment(swingconstants.right);          serverport.add(new jlabel("server address: "));         serverport.add(tfieldserv);         serverport.add(new jlabel("port number: "));         serverport.add(tport);         serverport.add(new jlabel(""));          // adds server , port fields gui         upperpanel.add(serverport);          // label , textfield         label = new jlabel("enter username below", swingconstants.center);         upperpanel.add(label);         tfield = new jtextfield("anonymous");         tfield.setbackground(color.white);         upperpanel.add(tfield);         add(upperpanel, borderlayout.north);          // central panel         tarea = new jtextarea("vanet disaster management\n", 120, 120);         jpanel middlepanel = new jpanel(new gridlayout(2,2));         middlepanel.add(new jscrollpane(tarea));         tarea.seteditable(false);         add(middlepanel, borderlayout.center);          // 3 buttons         signin = new jbutton("sign in");         signin.addactionlistener(this);         signoff = new jbutton("sign off");         signoff.addactionlistener(this);         signoff.setenabled(false);          // have sign in before being able sign off         activenodes = new jbutton("active clients");         activenodes.addactionlistener(this);         activenodes.setenabled(false);      // have sign in before being able see active client list          // lower panel         jpanel lowerpanel = new jpanel();         lowerpanel.add(signin);         lowerpanel.add(signoff);         lowerpanel.add(activenodes);         add(lowerpanel, borderlayout.south);          setdefaultcloseoperation(exit_on_close);         setsize(600,600);         setvisible(true);         tfield.requestfocus();     }      // append text in text area     void append(string str){         tarea.append(str);         tarea.setcaretposition(tarea.gettext().length() -1);     }      // called gui if connection fails     void connectionfailed(){         signin.setenabled(true);         signoff.setenabled(false);         activenodes.setenabled(false);         label.settext("enter username below");         tfield.settext("anonymous");          // reset port number , host name         tport.settext("" +defaultport);         tfieldserv.settext(defaulthost);          // let client modify them         tfieldserv.seteditable(false);         tport.seteditable(false);          // don't react carriage return after username         tfield.removeactionlistener(this);         connected = false;     }      // button or jtextfield clicked     public void actionperformed(actionevent e){         object obj = e.getsource();         if(obj == signoff) {             client.sendmsg(new commmessage(commmessage.signoff, ""));             return;         }         if(obj == activenodes) {             client.sendmsg(new commmessage(commmessage.activenodes, ""));             return;         }          if(connected){             client.sendmsg(new commmessage(commmessage.message, ""));             tfield.settext("");             return;         }          if(obj == signin) { // // // //             }              // create new client gui             client = new vclient(serv, port, username, this);             if(!client.start())                 return;             tfield.settext("");             label.settext("enter message below");             connected = true;              // disable sign in button             signin.setenabled(false);             // enable 2 buttons             signoff.setenabled(true);             activenodes.setenabled(true);             // disable server , port jtextfield             tfieldserv.seteditable(false);             tport.seteditable(false);             // when client enter message             tfield.addactionlistener(this);         }     }      // start whole thing     public static void main(string[] args) {         new clientgui("localhost", 1234);     } } 

let me know in case other files needed understand issue! files have:

commmessage.java vserver.java vclient.java servergui.java clientgui.java 

additional question: far chat server used starting point (as i'm new java programming) want build entire application here has central server (doing of work) , multiple clients communicating bi-directionally. that, need incorporate authentication well. idea is: remote client send connection request, server opens socket, client sends first packet containing name, ip, , port number. server should match pre-stored list of registered clients , if 1 of them, allows communication move forward. otherwise terminates connection, kindly suggest how can implement in code.

p.s. 'v' stands vanet (vehicular ad hoc network - project theme)

i'll respond main question, there typo in code

void appendevent(string str){     eventlog.append(str);     eventlog.setcaretposition(commwin.gettext().length() -1);                              // ^^^^ typo } 

should be

void appendevent(string str){     eventlog.append(str);     eventlog.setcaretposition(eventlog.gettext().length() -1); } 




wiki

Comments

Popular posts from this blog

elasticsearch - what is the equivalent data type for geo_point in hibernate search? -

Jenkins: find build number for git commit -

firebase - How to wait value in Ionic 2 -