Я работаю с качелями. У меня есть JTable
с 8 столбцами и динамическими строками. 2-я колонка не редактируется, что мне понравилось в DefaultTableModel
.Как отключить определенную ячейку в JTable?
static JComboBox combo1 = new javax.swing.JComboBox(new String[]{"Static","Project Variable", "External", "Output Variable"});
ParametersTable.setModel(new javax.swing.table.DefaultTableModel(
parametersTableData,
new String[]{
"S.No", "Parameters", "Parameter Type", "Static Value", "Variable Name", "Sheet Name", "Column Name", "Output Variable"
}
) {
Class[] types = new Class[]{
java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class
};
public Class getColumnClass(int columnIndex) {
return types[columnIndex];
}
boolean[] canEdit = new boolean[]{
true, false, true, true, true, true, true, true
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit[columnIndex];
}
}
);
ParametersTable.getColumnModel().getColumn(2).setCellEditor(new DefaultCellEditor(combo1));
У меня есть в 3-й колонке, которая имеет значения static,project variable,external,output variable
в JComboBox
.
Предполагая, что существует 2 строки, поэтому, когда я выбираю тип параметра как static
в первой строке, я хочу, чтобы этот конкретный cell
(статическое значение) включался в этой конкретной строке и остальной части ячеек, которые необходимо отключить. Аналогично, когда я выбираю параметр Parameter как «Output Variable» во второй строке. Я хочу, чтобы эта конкретная ячейка (Output Variable) была включена в этой конкретной строке и остальной части ячеек, которые нужно отключить.
Base вам решение для включения/выключения ячеек не в массиве, а значение 3-го столбца ... – MadProgrammer
@MadProgrammer Есть ли способ для достижения этой функциональности. Можем ли мы отключить конкретную CELL в качелях? Если да, то посоветуйте мне, что очень помогает. –
Да, используйте метод getVaueAt 'модели, чтобы получить значение для третьего столбца для данной строки и вернуть' boolean' на основе ваших правил для 'isCelLEditable' – MadProgrammer