我有一个JTable,它使用JTextArea作为一个Column的自定义渲染器。当我选择一行时,除了具有自定义单元格渲染器的列之外,该行中的所有元素都会突出显示。
如何才能突出显示该列?
我使用此代码填充并设置我的表
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;
}
}
我知道这可能会提出很多问题,但是对于代码示例的任何可能的解释都会受到高度赞赏,因为我还是一个菜鸟。