2017-01-14 10 views
1

У меня есть приложение с маршрутом datatable. Данные - csv-файл. Мне нравится выделить строку в таблице в codenameone, изменив цвет фона строки. Как я могу это сделать?Проблема с изменением цвета фона строки в кодовом имени одна таблица

Мой код

 String File_Name ="/route.csv"; 
     //"/root/sdcard/Pictures/route.csv"; 
     File f= new File (File_Name); 
     if (f.exists()) 

     InputStream is = Display.getInstance().getResourceAsStream(getClass(), File_Name); 
     CSVParser parser = new CSVParser(); 
     String[][] data = parser.parse(is); 
     String[] columnNames = new String[data[0].length]; 


     l = data.length; 
     for(int iter= 0 ; iter < columnNames.length ; iter++) { 

     if (iter== 0) { 
     columnNames[iter] = "Naam"; 
     } 
     else if (iter== 1) { 
     columnNames[iter] = "Latitude"; 
     } 
     else if (iter== 2) { 
      columnNames[iter] = "Longitude"; 
     } 
     } 
    tm = new DefaultTableModel(columnNames, data);  

     } 
    } 
    catch (IOException err){ 
     err.printStackTrace(); 
    } 

далее в коде

Table tm2 = new Table(tm) 

EDIT решил сам
Я редактировал стол Definiton TM2 и добавил переменную А. А строка, которая является выделено

Table tm2 = new Table(tm) { 
@Override 
public Component createCell(Object value, int row, int column, boolean editable) { // (1) 

    Component cell; 

    cell = super.createCell(value, row, column, editable); 


    if(row > a-1 && row < a+1) { // (5) 
     // pinstripe effect 
     cell.getAllStyles().setBgColor(0xe2f30d); 
     cell.getAllStyles().setBgTransparency(255); 
    } 
    return cell; 

} 
+0

Вы должны сказать, что язык это и для какой платформы. Также, пожалуйста, положите ответ в поле ответа, а не на вопрос. Вам разрешено отвечать на ваш собственный вопрос, а затем принять этот ответ. –

+0

@ BrianTompsett- 汤 莱恩 он ссылается на [Codename One] (https://www.codenameone.com/) (не уверен, что тег был там, когда вы прокомментировали), поскольку Codename One - это Java на основе языка подразумевается –

ответ

0

Изменение цвета ячейки обсуждается в the developer guide, так как вы, вероятно, обнаружили образец полоски.

Полная выборка из руководства разработчика заключается в следующем:

Table table = new Table(model) { 
    @Override 
    protected Component createCell(Object value, int row, int column, boolean editable) { 
     Component cell; 
     if(row == 1 && column == 1) { 
      Picker p = new Picker(); 
      p.setType(Display.PICKER_TYPE_STRINGS); 
      p.setStrings("Row B can now stretch", "This is a good value", "So Is This", "Better than text field"); 
      p.setSelectedString((String)value); 
      p.setUIID("TableCell"); 
      p.addActionListener((e) -> getModel().setValueAt(row, column, p.getSelectedString())); 
      cell = p; 
     } else { 
      cell = super.createCell(value, row, column, editable); 
     } 
     if(row > -1 && row % 2 == 0) { 
      // pinstripe effect 
      cell.getAllStyles().setBgColor(0xeeeeee); 
      cell.getAllStyles().setBgTransparency(255); 
     } 
     return cell; 
    } 

    @Override 
    protected TableLayout.Constraint createCellConstraint(Object value, int row, int column) { 
     TableLayout.Constraint con = super.createCellConstraint(value, row, column); 
     if(row == 1 && column == 1) { 
      con.setHorizontalSpan(2); 
     } 
     con.setWidthPercentage(33); 
     return con; 
    } 
}; 

enter image description here

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

  • Нет связанных вопросов^_^