Object rowData[][] = new Object[staffMembers.size()][3];
for (int i = 0; i < staffMembers.size(); i++) {
if (staffMembers.get(i).grade > num1) {
rowData[i][0] = staffMembers.get(i).name;
rowData[i][1] = staffMembers.get(i).grade;
rowData[i][2] = staffMembers.get(i).getCost();
model.setDataVector(rowData, colNames);
}
}
Не используйте код, как указано выше.Вы резервируете место в своем 2D-массиве, если все сотрудники выбраны.Что, если только первый и последний соответствуют вашим критериям?У вас будет куча пустых строк в середине таблицы.
Вместо этого вам просто нужно динамически добавить строку данных в модель, когда ваши конкретные критерии будут выполнены.Что-то вроде:
String[] colNames = {"Name", "Grade", "Montlhly Salary/Hourly Rate"};
DefaultTableModel model = new DefaultTableModel(colNames, 0); // create empty model
for (int i = 0; i < staffMembers.size(); i++) {
if (staffMembers.get(i).grade > num1) {
Vector<Object> row = new Vector<Object>(3);
row.add( staffMembers.get(i).name );
row.add( staffMembers.get(i).grade );
row.add( staffMembers.get(i).getCost() );
model.addRow( row );
}
}
staffByTaskGradeTable.setModel( model );
Вам все еще нужно отладить, почему ваше «если условие» не выполняет то, что вы ожидаете.
Или как вы знаете, что вы заменяете данные вмодель стола, которая видна на раме.Может быть, у вас есть экземпляр таблицы, и только один виден на кадре.Просто протестируйте его, чтобы просто заменить весь код в вашем методе на:
DefaultTableModel model = new DefaultTableModel(5, 5);
staffByTaskGradeTable.setModel(model);
Теперь вы должны увидеть пустую таблицу с 5 строками и 5 столбцами.Если это работает, проблема с вашим условием "если".Данные не соответствуют вашим ожиданиям.