2015-11-14 12 views
-1

Вы можете увидеть на следующем рисунке часть моего приложения. В основном JFrame содержит, между прочим: JTable в пределах JScrollPane.Фон фона JTable цвет заголовка

Я установил цвет фона для обоих элементов (см. A), но где я могу установить цвет на стрелке B?

Problem illustration

Заявлен следующим образом:

общественный класс CXPanel расширяет JPanel { частный JTablet_ao = новый JTable (ViewsModelService.getCXTableModel (0));

public CXPanel() { 
    GridBagConstraints c = new GridBagConstraints(); 
    (...) 
    this.add(new CXSubPanel(), c); 
} 


public class CXSubPanel extends GamePanel { 
    public CXSubPanel() { 
     super(new GridLayout(3, 0, 0, 0)); 

     TableScrollPane sc_ao = new TableScrollPane(); 

     (... adding JTable to scrollpane ect...) 

     this.add(sc_ao); 
    } 
} 

}

Задний основной цвет устанавливается для каждой панели, scrollpane (и его viewport) клеток и заголовок визуализации таблицы, пример заголовка визуализатора:

public class CXHeaderRenderer extends JLabel implements TableCellRenderer { 

     public CXHeaderRenderer() { 
      this.setFont(ViewsPreferences.CX_HEADER_FONT); 
      this.setForeground(ViewsPreferences.CX_HEADER_COLOR); 
      this.setBackground(ViewsPreferences.CX_HEADER_BACKGROUND); 
      this.setOpaque(true); 
      this.setBorder(null); 
      this.setHorizontalAlignment(JLabel.CENTER); 
      this.setPreferredSize(new Dimension(ViewsPreferences.P_HEADER_WIDTH, ViewsPreferences.P_HEADER_HEIGHT)); 
     } 

     @Override 
     public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { 
      setText(value.toString()); 
      return this; 
     } 

    } 
+1

Для лучшей помощи подумайте о создании и публикации [Минимальной, полной и проверенной примерной программы] (http://stackoverflow.com/help/mcve). Мы не хотим видеть всю вашу программу, но вы должны сконденсировать свой код на самый маленький бит, который все еще компилируется, не имеет дополнительного кода, который не имеет отношения к вашей проблеме, но все еще демонстрирует вашу проблему. –

+0

Выполнено, но я действительно сомневаюсь, что это помогает, поэтому я не отправил вас всех. Я не хотел иметь сообщение с бесполезным кодом, когда «цвет фона в scrollpane/panel/jtable/tableheader установлен» может возобновить его в одном предложении. – Totem

+0

Не сделано - прочитайте или перечитайте ссылку [mcve] еще раз. Вы правы, нам не нужен полный код, но большинство здесь находят * намного легче понять проблему ** быстро **, если мы можем запустить готовый небольшой код, который показывает его нам. Если вы не получите ответ в ближайшее время, я бы посоветовал вам рассмотреть возможность написания новой программы с нуля, которая разоблачает вашу проблему во всей ее наготе, поскольку это полезный инструмент для использования, а не только для того, чтобы задавать вопросы здесь, но также для решения проблемы самостоятельно. Когда я был на вашем месте, я использовал этот инструмент и нашел его чрезвычайно полезным. –

ответ

1

Aswer найдено (частично на this post):

table.getTableHeader().setBackground(myColor); 
scrollPane.setCorner(JScrollPane.UPPER_RIGHT_CORNER, dummyPanel); 

Узнайте больше о JScrollPane углах here, хорошо знать: каждый JTable содержит JScrollPane.

+1

Нет, каждая таблица не содержит 'JScrollPane',' JTable' завернут в 'JScrollPane' и может настроить себя, когда это делается – MadProgrammer

Смежные вопросы