Beispiel #1
0
        @Override
        public TableCellRenderer getCellRenderer(int row, int column) {
          MyTableModel model = (MyTableModel) getModel();
          if (column == 0) {
            // JXTable default renderer doesn't align right
            DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
            renderer.setToolTipText(model.getToolTipText(row));
            renderer.setHorizontalAlignment(JLabel.RIGHT);
            if (model.isExpert(row, column)) {
              renderer.setForeground(Color.GRAY);
            }
            return renderer;
          }

          // code repetition with getCellEditor because of TableCell{Renderer, Editor}
          // non-inheritance
          Class<?> klass = model.getClassAt(row, column);
          PropertyEditorTableAdapter javaBeansRenderer = PropertyEditorTableAdapter.forClass(klass);
          if (javaBeansRenderer != null) {
            return javaBeansRenderer;
          }
          return getDefaultRenderer(klass);
        }