为JTable指定特定于列的TableCellRenderers

Pet*_*erg 3 java swing jtable tablecellrenderer tablecolumn

我有一个JTable显示双倍的多列,其中一些是比率,其他列是美元值.我想指定一个TableCellRenderer用于比率,另一个用于美元值.

java教程说"要指定特定列中的单元格应该使用渲染器,您可以使用该TableColumn方法setCellRenderer".这很有帮助,但我不清楚我应该在什么时候将这种方法称为我TableColumn的方法.有这样做的标准方法吗?我应该JTable在其构造函数中创建一个自定义的自定义吗?还是习俗TableColumnModel?理想情况下,我希望能够从TableModel我已有的自定义中做到这一点,尽管这似乎不太可能.

任何帮助,将不胜感激.谢谢

Dan*_* D. 5

您可以通过以下方式在列上设置渲染器:

table.getColumnModel().getColumn(0).setCellRenderer(new TableRendererExample());
Run Code Online (Sandbox Code Playgroud)

您可以编写自己的渲染器实现:

  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;
    }
  }
Run Code Online (Sandbox Code Playgroud)

  • +1你打败了我!有相关的例子[这里](http://stackoverflow.com/a/10491290/230513). (2认同)