2013-02-27 4 views
0

Я создал таблицу и вам нужно выровнять каждую вторую строку вправо и каждую другую строку по умолчанию.Jtable, используйте разные настройки для каждого ROW

Я понимаю, как выровнять строки. Это мой по умолчанию визуализатор

final DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer(); 
centerRenderer.setHorizontalAlignment(DefaultTableCellRenderer.CENTER); 
final DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer(); 
rightRenderer.setHorizontalAlignment(DefaultTableCellRenderer.RIGHT); 
+1

для более эффективной помощи скорее отправить сообщение [SSCCE] (http://sscce.org/), краткое, выполнимое, компилируемое – mKorbel

ответ

1

Вы должны настроить Отображатель немного и переопределить его метод getTableCellRendererComponent. Что-то вроде:

 
DefaultTableCellRenderer renderer = new DefaultTableCellRenderer() { 
    public Component getTableCellRendererComponent(JTable table, Object value, 
      boolean isSelected, boolean hasFocus, int row, int column) { 
     if (r % 2 == 0) { 
      setHorizontalAlignment(SwingConstants.LEFT); 
     } 
     else { 
      setHorizontalAlignment(SwingConstants.RIGHT); 
     } 
     return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 
    } 
}; 

Хотя создать свой собственный собственный класс, расширяющий DefaultTableCellRenderer и делает это будет лучший подход.

1

См. Table Row Rendering.

Это позволит вам изменить выравнивание в одном месте, даже если ваша таблица использует несколько средств визуализации и не создает собственный рендерер.