Hi,
I am updating the jtable with the message I enter ... I want to implement a process() for this swing worker ?
how do i complete the code of process() ?

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.util.List;
import java.util.Scanner;
import java.util.Vector;
import java.util.concurrent.ExecutionException;
 
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingWorker;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
 
public class App 
{ 	 
	     static JFrame frame = new JFrame("Random Data Demo");
	     static JTable table =  new JTable();
	     static DefaultTableModel tableModel = new DefaultTableModel();
	 	 static Scanner sc=new Scanner(System.in);
 
	   public static void main(String[] args) throws Exception {
	        EventQueue.invokeLater(new Runnable() {
	            @Override
	            public void run() 
	            {            	
	               while(true)
	               {
 
	            	System.out.println("Write message here: ");									
	     			String message = sc.nextLine();
	     			System.out.println("Message is: "+message);
 
	            	Swingwor mainWorker = new Swingwor(table,message);
	                mainWorker.execute(); 
 
	                init();
 
	               }
	            }
	        });
	    }
 
	   private static void init() {
		   //execTask();
		 // JFrame frame = new JFrame("Random Data Demo");
	       frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
	      frame.setSize(600,600);
 
	    //	DefaultTableModel model = new DefaultTableModel();
	    	//JTable table =  new JTable(model);
	    	table.setModel(tableModel);
 
	    	table.repaint();
	    	JScrollPane scrollPane = new JScrollPane(table);
 
	    	JPanel panel = new JPanel(new BorderLayout());
	    	//Swingworker mainWorker = new Swingworker(table);
           // mainWorker.execute();
 
	    	panel.add(table.getTableHeader(), BorderLayout.PAGE_START);
	    	panel.add(scrollPane, BorderLayout.CENTER);
	    	//getContentPane().add(panel);
              frame.add(panel);
	          frame.setVisible(true);
	    }
 
	 //  private static void execTask() 
	  // {	  
		//   Swingwor mainWorker = new Swingwor(table);
	//	   mainWorker.execute(); 
 
   //   }
}
 
 
class Swingwor extends SwingWorker<TableModel,TableModel>
{
 
	Object data[][]=null;
    private final JTable table;
    int i,r;
    String p;
    String message=null;
    Object col[] = {"Sensor","Values","Arrival_Time","Status",""};
 
    public Swingwor(JTable table, String message) {
        this.table = table;
        this.message = message;
    }    
    @Override
    protected TableModel doInBackground() throws Exception 
    {     	   	
			if(!message.equals("ITS EMPTY"))
			{
				String[] parts = message.split("\t");
		            data = new Object[parts.length / 4][5];
				for (i = 0, r = 0; r < data.length; r++) 
				{                        	  						
					data[r][0] =  parts[i++];
				   //data[r][1] =  new Double(parts[i++]) ;
				    data[r][1] =  parts[i++] ;
				    data[r][2] = parts[i++];
				    data[r][3] = parts[i++];
				    p=(String) data[r][3];
				   // w = (String) abc(p);
				    data[r][4]=Boolean.parseBoolean(p) ;
				  System.out.println(data[r][4]);
				}               
				//System.out.println(java.util.Arrays.deepToString(data));
             //Display Table     
                  }
		----->	publish(TableModel);
			DefaultTableModel tableModel = new DefaultTableModel(data, col);
	        tableModel.setDataVector(data, col);
			 return tableModel;
          }
 
    @Override
    protected void process(List<TableModel> chunks)
    {
        ///update partial tablemodel
    }
 
    @Override
    protected void done() {
        try {
            TableModel model = get();
            table.setModel(model);
        } catch (InterruptedException | ExecutionException ex) {
            ex.printStackTrace();
        }
    }
 
 
 
}