Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JTextArea not displaying text

In my function for displaying text in textarea,i have written following lines of code but it is not displaying any text

        jTextArea1.setText( Packet +"\n" +jTextArea1.getText());

I am using swingworker for performing background task,here is my code

public class SaveTraffic extends SwingWorker<Void, Void> {


public GUI f = new GUI();

@Override
public Void doInBackground() throws IOException {
              //some code
              sendPacket(captor.getPacket().toString()); 
              return null;
             }//end main function

@Override
public void done() {
    System.out.println("I am DONE");

}


public void sendPacket(String Packet) {

 f.showPackets(Packet);
}

}

and the following lines of code i have written in my GUI form

 public  void showPackets(String Packet) {

 jTextArea1.append( Packet);

}

Solution: public class SaveTraffic extends SwingWorker {

     public GUI f = new GUI();

     @Override
    public Void doInBackground() throws IOException {
    f.add(jTextPane1);
   // some code

   publish(captor.getPacket().toString());

   // the method below is calling sendPacket on the background thread
   // which then calls showPackets on the background thread
   // which then appends text into the JTextArea on the background thread
  //sendPacket(captor.getPacket().toString());

    return null;
   }

  @Override
   protected void process(List<String> chunks) {
   for (String text : chunks) {
     jTextPane1.setText(text);
     f.showPackets(text);
   }
  }

  @Override
  public void done() {
   System.out.println("I am DONE");

   }

}

like image 567
Xara Avatar asked Dec 12 '22 02:12

Xara


1 Answers

Instead of using setText() use append()

like image 78
OmniOwl Avatar answered Dec 28 '22 06:12

OmniOwl