Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为JTable指定特定于列的TableCellRenders_Java_Swing_Jtable_Tablecellrenderer_Tablecolumn - Fatal编程技术网

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;
    }
  }

+你赢了我!有一个相关的例子。