У меня есть функция, которая проходит через CSV-файл и генерирует значение DefaultTableModel данных (которое затем отображается в JTable). Эта функция:Добавить флажок в JTable, который был сгенерирован из CSV
public DefaultTableModel createTableModel(Reader in, Vector<Object> headers) {
DefaultTableModel model = null;
Scanner s = null;
Vector<Object> c;
try {
Vector<Vector<Object>> rows = new Vector<Vector<Object>>();
s = new Scanner(in);
while (s.hasNextLine()) {
rows.add(new Vector<Object>(
Arrays.asList(s.nextLine().split("\\s*,\\s*", -1))));
}
if (headers == null) {
headers = rows.remove(0);
model = new DefaultTableModel(rows, headers);
} else {
model = new DefaultTableModel(rows, headers);
}
return model;
} finally {
s.close();
}
}
Однако, я хотел бы изменить этот код, чтобы добавить флажок в первой колонке данных (которые я добавил в качестве шаблона при создании CSV-файла в любом случае в качестве столбца с заголовком " Selected "), который заполняет логическое значение false
для каждой строки.
Проблема в том, что я не знаю, где в моем коде должно появиться что-то вроде ниже (после прочтения онлайн я вижу, что так вы можете получить JTable для автогенерации текстовых полей выбора, установив класс столбец до Boolean
). Обратите внимание, что здесь столбец «Selected» в колонке 1 жёстко:
{
public Class getColumnClass(int column) {
if(column==1){
return Boolean.class;
}else return String.class;
}
};
Должен быть определен (я предполагаю, что должно быть в функции выше).
Кстати, ['' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''' '' '' '(http://stackoverflow.com/questions/1386275/why-is-java-vector-class-considered-obsolete-or-deprecated) –