У меня есть JTable, который использует JTextArea в качестве пользовательского средства визуализации для одного столбца.Когда я выбираю строку, все элементы в этой строке подсвечиваются, за исключением столбца с настраиваемым визуализатором ячеек.
Как я могу также выделить этот столбец?
Я использую этот код для заполнения и задания таблицы
jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
jTable1.setModel(DbUtils.resultSetToTableModel(rs1));
jTable1.getColumnModel().getColumn(3).setCellRenderer(new wrap());
updateRowHeights(3, 300);
TableColumn c1 = jTable1.getColumnModel().getColumn(0);
TableColumn c2 = jTable1.getColumnModel().getColumn(1);
TableColumn c3 = jTable1.getColumnModel().getColumn(2);
TableColumn c4 = jTable1.getColumnModel().getColumn(3);
TableColumn c5 = jTable1.getColumnModel().getColumn(4);
TableColumn c6 = jTable1.getColumnModel().getColumn(5);
TableColumn c7 = jTable1.getColumnModel().getColumn(6);
TableColumn c8 = jTable1.getColumnModel().getColumn(7);
c1.setPreferredWidth(60);
c2.setPreferredWidth(120);
c3.setPreferredWidth(90);
c4.setPreferredWidth(400);
c5.setPreferredWidth(150);
c6.setPreferredWidth(90);
c7.setPreferredWidth(80);
c8.setPreferredWidth(80);
Это класс Wrap
class wrap extends JTextArea implements TableCellRenderer {
wrap() {
super();
setLineWrap(true);
setEditable(false);
setWrapStyleWord(true);
setBorder(BorderFactory.createEmptyBorder(5, 10, 5, 10));
}
@Override
public Component getTableCellRendererComponent(JTable jtable, Object value, boolean bln, boolean bln1, int i, int i1) {
setText((String) value);
setFont(jTable1.getFont());
setBackground(jTable1.getBackground());
setForeground(jTable1.getForeground());
return this;
}
}
Я знаю, что это может потребовать много, но любое возможное объяснение с примером кода будет высоко оценено, так как я все еще новичок.
Вот пример изображения того, что происходит сейчас.Извините, мне пришлось размазать некоторые данные.