2015-03-19 2 views
0

Как я могу получить структуру заголовка, как показано на изображении, поэтому я могу иметь некоторый уровень дискриминации по параметрам, представленным в компоненте Table. enter image description hereКак настроить строку заголовка компонента таблицы (в кодовом имени)

Если вы видите на диаграмме, то таблица разделена на две части. Горячая сторона и холодная сторона. Есть некоторые параметры под горячей стороной и некоторые параметры под холодной стороной. По крайней мере, это необходимо.

Я модифицируя свой вопрос на основе ваших анс:

String[][] tableData = { 
       { "Density", "Volume Flow", "T (in)","T (out)","Flow", "Specific Heat", "Density", "Volume Flow", 
        "T (in)","T (out)","Flow", "Specific Heat", "Duty", "UA"} 
     }; 

    final CustomTableModel tableModel = new CustomTableModel (
       new String[] {"Hot Side", "","","","","Cold Side","","","","","",""}, tableData,true); 

dataTable = new Table(tableModel) { 


     @Override 
      protected Constraint createCellConstraint(Object value, int row, int column) { 

       Constraint con = super.createCellConstraint(value, row, column); 
       if(row == -1 && (column == 0 || column == 5)) { 
        con.setHorizontalSpan(5); 
       } 
       return con; 
      } 
     @Override 
     protected Component createCell(Object value, final int row, final int column, boolean editable) { 

      if(row == -1) { 
        final Button headerButton = new Button((String)value); 
        headerButton.setUIID(getUIID() + "Header"); 
        headerButton.getUnselectedStyle().setAlignment(Component.CENTER); 
        headerButton.getSelectedStyle().setAlignment(Component.CENTER); 
        headerButton.setFlatten(true); 


        return headerButton; 
       } 
       // Conditions for Other rows 
        ... 
      } 

У меня есть только две колонки «горячая сторона» и «холодная сторона» в строке заголовка и 14 столбцов в остальных строках. Я попробовал другое состояние, но не получил эту структуру. Какие условия я должен внести, чтобы получить структуру. Я думаю, что я делаю что-то неправильно здесь.

Это то, что я пробовал:

  @Override 
      protected Constraint createCellConstraint(Object value, int row, int column) { 

       Constraint con = super.createCellConstraint(value, row, column); 
       if(row == -1 && (column == 0 || column == 5)) { 
        con.setHorizontalSpan(5); 
       } 
       return con; 
      } 

Мой TableModel является:

final CustomTableModel tableModel = new CustomTableModel (
       new String[] {"Hot Side", "","","","","Cold Side","","","","","",""}, tableData,true); 

Это предварительный просмотр экрана: enter image description here

+0

Вы должны предоставить всю информацию в вашем вопросе. Я удалил свой ответ. – YourFriend

ответ

0

Вы можете настроить любую ячейку в таблице, переопределяя метод createCell, это включает ячейки заголовка, которые отмечены как -1 строка, если я правильно помню.

В этом случае область заголовка должна «пролет», который вы можете сделать с помощью переопределения ограничения поведения:

protected TableLayout.Constraint createCellConstraint(Object value, int row, int column) { 
    TableLayout.Constraint tl = super.createCellConstraint(value, row, column); 
    if(this is the cell I want to span) { 
     tl.setHorizontalSpan(4); 
    } 
    return tl; 
} 
+0

Я изменил вопрос на основе вашего ответа. Он охватывает, но не в правильном направлении. То, что я сделал, применяется для -1 строки и столбца 0 и 1. Но я получаю пустую таблицу. Я также пробовал некоторые другие условия, поместив пустые столбцы в строку заголовка, в этом случае я получу половину таблицы (только горячая сторона). Нужно ли иметь одинаковое количество столбцов в строке заголовка и остальной части строк? –

+0

Трудно сказать, я предлагаю вам попробовать простой тестовый пример с меньшим образцом, а затем сузить то, что именно ломается для вас. –

+0

Если я использую два столбца для строки заголовка, то для остальных строк также требуется два столбца (что я не хочу четко). Даже если я добавлю пустые столбцы в строку заголовка и попытаюсь расширить только два, несколько столбцов перекрывают друг друга в строке заголовка и показывают несколько столбцов (7 или 8 из 14) в оставшихся строках. Что вы предлагаете для этого условия? –

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