3

ダブルスをJTable表示する複数の列があるがあり、その一部は比率であり、その他はドル値です。TableCellRenderer比率に使用するaと、ドルの値に使用するaを指定したいと思います。

Javaチュートリアルには、「特定の列のセルでレンダラーを使用するように指定するには、TableColumnメソッドを使用する」と書かれていますsetCellRenderer。これは役に立ちますが、どの時点でこのメソッドを呼び出す必要があるのか​​がわかりませんTableColumn。これを行う標準的な方法はありますか?コンストラクターでこれを行うカスタムを作成する必要がJTableありますか?またはカスタムTableColumnModelTableModel理想的には、私がすでに持っている習慣からこれを実行できるようにしたいと思いますが、これが可能になる可能性は低いようです。

どんな助けでもいただければ幸いです。ありがとう

4

1 に答える 1

5

次の方法で、列にレンダラーを設定できます。

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;
    }
  }
于 2012-08-29T18:47:52.193 に答える