我想使用此代码颜色在jTable..i特定行这么做是为了列,着色JTable中排
private class CustomCellRenderer extends DefaultTableCellRenderer {
/* (non-Javadoc)
* @see
javax.swing.table.DefaultTableCellRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int)
*/
@Override
public Component getTableCellRendererComponent(JTable table, Object value,boolean isSelected, boolean hasFocus, int row, int column) {
Component rendererComp = super.getTableCellRendererComponent(table, value, isSelected, hasFocus,row, column);
//Set foreground color
// rendererComp.setForeground(Color.red);
//Set background color
rendererComp .setBackground(Color.pink);
return rendererComp ;
}
}
我呼吁使用上面的代码,
jTable1.getColumnModel().getColumn(3).setCellRenderer(new CustomCellRenderer());
但我想要对jTable中的行做同样的事情。在行的情况下没有getColumnModel()或getColumn()。那么做这些的替代方法是什么?我正在使用Java Swing在Netbeans中执行此操作..
对(INT I = 0;我
Luna
@Tickua我不确定我是否理解你的评论。在getTableCellRendereComponent方法中,您可以访问所有可能需要的信息:JTable,单元格的当前值以及表格(行和列)中单元格的位置,以及当前行是否被选中并且如果当前细胞被聚焦。从表中您还可以访问TableModel(table.getModel())。我认为从那里计算你想要的任何条件并设置适当的背景色应该是相当容易的。 –
我知道..但我的问题是我如何通过指定我的第一行和第一列来调用方法getTableCellRendereComponent()..我试过这种方式也..最终CustomCellRenderer渲染器= new CustomCellRenderer(); ,renderer.getTableCellRendererComponent(jTable1,1,true,true,i,1); – Luna