Я пытаюсь изменить цвет некоторых ячеек в своем JTable. Я попытался переопределить getTableCellRendererComponent в простом примере, и он работает хорошо. Но когда я делаю то же самое в моем проекте ничего не меняется ...изменить цвет JTable ячейки с getTableCellRendererComponent НИЧЕГО ПРОСМОТРА
У меня есть JPanel с моей JTable в коробке, как это:
boxTable=Box.createHorizontalBox();
box2Table.add(boxTable);
//JTable
tablaContador = new JTable(datosContador,cabeceraContador);
//MODIF COLOR
tablaContador.setDefaultRenderer(Object.class, new ColorRenderer());
Выполнение:
System.out.println(tablaContador.getColumnClass(3));
я могу знать что первый параметр setDefaultRenderer - Object.class Я не знаю, есть ли проблема здесь ... У меня есть только строки в таблице, но я попробовал String.class и ничего не происходит
Тогда я изменить некоторые вещи в ячейках для JTable:
tablaContador.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
boxTable.add(tablaContador);
//Align cells
for (int i=0; i<cabeceraContador.length;i++){
tablaContador.getColumnModel().getColumn(i).setCellRenderer(alinearCeldas);
}
//Modify cells' width
tablaContador.getColumnModel().getColumn(0).setMinWidth(150);
for (int i=1; i<cabeceraContador.length;i++){
tablaContador.getColumnModel().getColumn(i).setMaxWidth(40);
}
//Scroll for the Table
scrollContador=new JScrollPane(tablaContador,JScrollPane.VERTICAL_SCROLLBAR_NEVER,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
scrollContador.setPreferredSize(new Dimension(1000,80));
scrollContador.setMinimumSize(new Dimension(1000,80));
scrollContador.setMaximumSize(new Dimension(2000,80));
//Add scroll to the box
box2Table.add(scrollContador);
И мой класс ColorRenderer является:
public class ColorRenderer extends DefaultTableCellRenderer{
private Component c;
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,int row, int column) {
c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
c.setBackground(Color.BLUE);
return c;
}
}
Так это не работает в моем проекте я не знаю, почему
любая идея?
thaks!
Для лучшей помощи, пожалуйста, серьезно рассмотреть вопрос создания и размещения в вашем вопросе действительный [mcve]/[SSCCE] (http://sscce.org). Это действительно имеет огромное значение, позволяя нам полностью понять ваш код и ваш вопрос. –
Этот вопрос был первоначально закрыт как дубликат: http://stackoverflow.com/questions/18253881/custom-tablecellrenderer-treetablecellrenderer-doesnt-render-table-cells. Я не верю, что это дубликат, поскольку этот рендерер «расширяет» DefaultTableCellRenderer (который непрозрачен), в то время как другой вопрос «реализует» TableCellRenderer, и в этом случае вам нужно беспокоиться о том, чтобы сделать ярлык непрозрачным. – camickr
@HovercraftFullOfEels, 'Вы делаете свой собственный рендерер непрозрачным ... по умолчанию не является, - DefaultTableCellRenderer по умолчанию непрозрачен. – camickr