java - Timer util wont add a new line for JLabel -


why when user timer.util jlabel wont allign string inserted in jtextpane? when use timer allign. need timer.util database wont lag.

here image when use timer swing

enter image description here

timer t2 = new timer(250,new actionlistener(){          public void actionperformed(actionevent arg0) {              fetchmessagedata2();         }     });     t2.start();   public static void fetchmessage(jtextpane jtep,styleddocument sd,int count  ) {      try{      string query = "select members.username, message chat join members on    chat.user_id = members.id message_id > "+count+"";     rs = st.executequery(query);     while(rs.next())     {          try {             final jlabel jp = new jlabel(rs.getstring("username")+ "\n");             jp.setalignmenty(0.75f);             jp.setfont(new font("arial",font.bold,16));             jtep.insertcomponent(jp);             sd.insertstring(sd.getlength(), ": "+rs.getstring("message")+ "\n", mainpanel.sas);         } catch (badlocationexception e1) {              e1.printstacktrace();         }           mainpanel.count++;}      }catch(exception ex){system.out.print(ex);}  } 

here image result using timer.util

enter image description here

timer t  = new timer();     t.schedule(new runnablemethods(), 0,500);  import java.util.timertask;   public class runnablemethods extends timertask{  @override public void run() {      subpanel1.checkofflineonline(); } } 

don't use java.util.timer's on swing event dispatch thread, edt, not thread safe use swing. either use javax.swing.timer or if must use java.util.timer, use on background thread, , make sure make swing calls on edt. swingworker work this.


Comments