我已经编写了以下方法来创建表,但是每次每次任务列表不同时都调用它,但是表无法更改表的值

 public void displayAllTaskByProjectId(Task[] task) {

    System.out.println("Success fully call");
    /**
     * The table to display tasks related to the selected project and timer
     * for that
     */
    tblTaskList = new JTable();
    LOG.info(" get here");
    int length;

    DefaultTableModel dm = new DefaultTableModel(0, 0) {
        private static final long serialVersionUID = 1L;

        public Class getColumnClass(int column) {
            return getValueAt(0, column).getClass();
        };

        public boolean isCellEditable(int row, int column) {
            switch (column) {
            case 5:
                return true;
            default:
                return false;
            }

        };
    };
    dm.fireTableDataChanged();
    String header[] = new String[] { "Prority", "Task Title", "Start",
            "Pause", "Stop", "Statulses" };
    dm.setColumnIdentifiers(header);

    // Add image icon in table
    ImageIcon imgStart = new ImageIcon("../../../../start.png");
    ImageIcon imgStop = new ImageIcon("../../../../stop.png");
    ImageIcon imgPause = new ImageIcon("../../../../pause.png");
    length = task.length;
    for (int count = 0; count < length; count++) {
        dm.addRow(new Object[] { count, task[count].getTaskTitle() + count,
                imgStart, imgPause, imgStop, "Active" });
    }
    tblTaskList.setModel(dm);
    TableColumn tbcStatus = tblTaskList.getColumnModel().getColumn(5);
    JComboBox cmbStatus = new JComboBox();
    cmbStatus.setModel(new DefaultComboBoxModel(new String[] { "Active",
            "Close", "Deactive", "Offline" }));
    tbcStatus.setCellEditor(new DefaultCellEditor(cmbStatus));

    tblTaskList.getColumnModel().getColumn(0).setMinWidth(0);
    tblTaskList.getColumnModel().getColumn(0).setMaxWidth(0);
    tblTaskList.getColumnModel().getColumn(1).setPreferredWidth(350);
    tblTaskList.getColumnModel().getColumn(2).setPreferredWidth(35);
    tblTaskList.getColumnModel().getColumn(3).setPreferredWidth(35);
    tblTaskList.getColumnModel().getColumn(4).setPreferredWidth(25);

    tblTaskList.getTableHeader().setReorderingAllowed(false);
    tblTaskList.getTableHeader().setResizingAllowed(false);
    tblTaskList.setBounds(93, 34, 614, 324);

    jspTasklist = new JScrollPane(tblTaskList);
    jspTasklist.setOpaque(false);
    jspTasklist.setFocusTraversalPolicyProvider(true);
    jspTasklist.setBounds(108, 34, 605, 335);
    frmTaskList.getContentPane().add(jspTasklist);
}


请尽快给我解决我的问题

最佳答案

您应该只删除tblTask​​List = new JTable();从displayAllTask​​ByProjectId函数和代码将正常工作。仅在初始化组件时才使用此行tblTask​​List = new JTable()

10-07 13:01
查看更多