javaswingjtablewindowbuilder

How to add row dynamically in JTable


I want to add the row dynamically in JTable and I have writen the following code for that:

    tblTaskList = new JTable();
    tblTaskList.setShowVerticalLines(false);
    tblTaskList.setCellSelectionEnabled(true);
    tblTaskList.setColumnSelectionAllowed(true);
    tblTaskList.setBorder(new LineBorder(null));
    for (int count = 1; count <= 10; count++) {
        tblTaskList.setModel(new DefaultTableModel(new Object[][] { {
                count, "title1", "start", "stop", "pause", "status" }, },
                new String[] { "status", "Task Title", "Start", "Stop",
                        "Pause", "Status" }));
    }
    tblTaskList.getColumnModel().getColumn(0).setPreferredWidth(31);
    tblTaskList.getColumnModel().getColumn(1).setPreferredWidth(346);
    tblTaskList.getColumnModel().getColumn(2).setPreferredWidth(33);
    tblTaskList.getColumnModel().getColumn(3).setPreferredWidth(31);
    tblTaskList.getColumnModel().getColumn(4).setPreferredWidth(28);

    tblTaskList.setBounds(93, 34, 614, 160);
    frmTaskList.getContentPane().add(tblTaskList);

The problem is that only the last row is added, i.e. count print the value 10 in first column,,,can anyone explain how to solve the problem?


Solution

  • i Have also found one solution for this and it runs successfully

        DefaultTableModel dm = new DefaultTableModel(0, 0);
        String header[] = new String[] { "Status", "Task Title", "Start",
                "Pause", "Stop", "Statulses" };
        dm.setColumnIdentifiers(header);
        tblTaskList.setModel(dm);
    
        for (int count = 1; count <= 10; count++) {
            Vector<Object> data = new Vector<Object>();
            data.add(count);
            data.add("Project Title" + count);
            data.add("Start");
            data.add("Stop");
            data.add("Pause");
            data.add("Status");
            System.out.println("test :- " + count);
            dm.addRow(data);
        }