I've been working on this code for couple of days. My procedure on the database works fine but it doesn't fill into the table. I'm going through the code again and again but I can't find what's wrong... The error I get is: JavaNullPointerException and the line involving is the piece of code that returns notes.length
. Here's a piece of my code:
private Object[][] notes = null;
setUpStatusColumn(noteTable, noteTable.getColumnModel().getColumn(2));
protected JTable createTable(GradesModel gradesModel) {
return new JTable(gradesModel);
}
public void setUpStatusColumn(JTable table, TableColumn statusColumn) {
statusCombo = new JComboBox();
statusCombo.addItem("OTOCLOSED");
statusCombo.addItem("INPROGRESS");
statusCombo.addItem("OPEN");
statusCombo.addItem("CLOSED");
statusColumn.setCellEditor(new DefaultCellEditor(statusCombo));
DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
renderer.setToolTipText("Click to select Note Status");
statusColumn.setCellRenderer(renderer);
}
private class GradesModel extends AbstractTableModel {
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
notes[rowIndex][columnIndex] = aValue;
fireTableCellUpdated(rowIndex, columnIndex);
}
public void addTableModelListener(TableModelListener l) {
}
public void removeTableModelListener(TableModelListener l) {
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
if (columnIndex == 0 || columnIndex == 1 || columnIndex == 4 || columnIndex == 5)
return false;
else
return true;
}
public Class<?> getColumnClass(int col) {
switch (col) {
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
return String.class;
}
throw new AssertionError("invalid column");
}
public int getRowCount() {
return notes.length;
}
public int getColumnCount() {
return 6;
}
public String getColumnName(int col) {
switch (col) {
case 0:
return "ETT Date";
case 1:
return "Control Name";
case 2:
return "Note Status Type";
case 3:
return "Note Log Desc";
case 4:
return "Note Log Date Time";
case 5:
return "Update/Insert";
}
throw new AssertionError("invalid column");
}
public Object getValueAt(int row, int col) {
for (int i = 0; i < 6; i++) {
if (col == i)
return notes[row][col];
}
throw new AssertionError("invalid column");
}
}
public void getTableData() throws Exception {
Vector<AlarmLog> alarmLog = null;
alarmLog = RepositoryHandler.getGlobalRepository().getAlarmLog(
alarmId);
notes = new Object[alarmLog.size() ][5];
java.util.Iterator<AlarmLog> ite = alarmLog.iterator();
int i = 0;
GradesModel myModel=(GradesModel)noteTable.getModel();
while(ite.hasNext()){
AlarmLog aLog = ite.next();
myModel.setValueAt(aLog.getEttDate(), i, 0);
myModel.setValueAt(aLog.getControlName(), i, 1);
myModel.setValueAt(aLog.getAlarmStatusType(), i, 2);
myModel.setValueAt(aLog.getAlarmLogDesc(), i, 3);
myModel.setValueAt(aLog.getAlarmLogDateTime(), i, 4);
myModel.setValueAt(1, i, 5);
i++;
}
// fill table code
noteTable.repaint();
//setModel
}
public void getDataFromTable() {
int columnCount = noteTable.getModel().getColumnCount();
int rowCount = noteTable.getModel().getRowCount();
Object[][] objArray = new Object[rowCount][columnCount];
for (int i = 0; i < rowCount; i++) {
for (int j = 0; j < columnCount; j++) {
objArray[i][j] = noteTable.getModel().getValueAt(i, j);
}
}
}