Java 为JTable指定特定于列的TableCellRenders
我有一个Java 为JTable指定特定于列的TableCellRenders,java,swing,jtable,tablecellrenderer,tablecolumn,Java,Swing,Jtable,Tablecellrenderer,Tablecolumn,我有一个JTable,有多个显示双精度的列,其中一些是比率,另一些是美元值。我想指定一个用于比率的TableCellRenderer,另一个用于美元值 java教程说“要指定特定列中的单元格应该使用渲染器,可以使用TableColumn方法setCellRenderer”。这是有帮助的,但是我不清楚在什么时候应该在我的TableColumns上调用这个方法。有没有一个标准的方法可以做到这一点?我应该在构造函数中创建一个自定义的JTable?还是自定义的表格列模型?理想情况下,我希望能够从我已经拥
JTable
,有多个显示双精度的列,其中一些是比率,另一些是美元值。我想指定一个用于比率的TableCellRenderer
,另一个用于美元值
java教程说“要指定特定列中的单元格应该使用渲染器,可以使用TableColumn
方法setCellRenderer
”。这是有帮助的,但是我不清楚在什么时候应该在我的TableColumn
s上调用这个方法。有没有一个标准的方法可以做到这一点?我应该在构造函数中创建一个自定义的JTable
?还是自定义的表格列模型
?理想情况下,我希望能够从我已经拥有的定制TableModel
中实现这一点,尽管这似乎不太可能
任何帮助都将不胜感激。谢谢您可以通过以下方式在列上设置渲染器:
table.getColumnModel().getColumn(0).setCellRenderer(new TableRendererExample());
您可以编写自己的渲染器实现:
class TableRendererExample extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if (column == 1) {
c.setForeground(Color.gray);
}
return c;
}
}
+你赢了我!有一个相关的例子。