2013-10-01 4 views
0

У меня есть таблица, которая принимает несколько вариантов. На этой JTable я добавить столбец, который я добавить выпадающий как это:Multi Selection JTable + Combobox (celleditor) + Нажмите

public void setPriorityEditor(final String columnName) { 
     final TableColumn col = ((BasicTableModel) table.getModel()) 
      .findTableColumn(columnName); 
     col.setCellEditor(new PriorityComboBoxEditor()); 
    } 

Я хотел бы реализовать новую функцию: , чтобы можно обновить несколько поле, используя выпадающий, который является частью моего выбора. http://imageshack.us/photo/my-images/40/qyks.png/ Моя проблема начинается, когда я хочу выбрать строку, часть которой в моем выборе. Avec выберите несколько строк, выбор обновится, и теперь у меня есть только одна строка. Возможно ли это?

Резюме: Попробуйте обновить столбцы с несколькими вариантами. Строки содержат столбец со списком. Выберите несколько строк и используйте combobox (который является частью выбранных строк) для обновления всех столбцов, соответствующих столбцам, со значением combobox.

С уважением, ребята.

+0

Привет, цените английский, возможно, не ваш первый язык, но ваш вопрос очень трудно понять. Не могли бы вы обновить/уточнить, что вы спрашиваете? Благодарю. Protip: введите свой родной язык и переведите его с помощью http://translate.google.com/#fr/en/, поскольку возможности Google в наши дни очень хороши. – BlackBox

+0

это более ясно? – MatDev8

+0

Да, но не имеет смысла иметь только 1 комбо-поле где-то еще в вашем приложении, а не дублировать его для каждой строки? что упростило бы для вас. – BlackBox

ответ

0

Так я изменить код в changeSelection() Methode так:

if (extend) { 
      super.changeSelection(rowIndex, columnIndex, toggle, extend); 
      listTest = new ArrayList<Object>(); 
      for (int e : modelTable.getToolTipsJTable().getSelectedRows()) { 
       listTest.add(e); 
      } 
      isExtend = true; 
     } else { 
      // super.changeSelection(rowIndex, columnIndex, toggle, extend); 
      if (modelTable.getToolTipsJTable().getSelectedRows().length > 1) { 
       listTest = new ArrayList<Object>(); 
       for (int e : modelTable.getToolTipsJTable() 
        .getSelectedRows()) { 
        listTest.add(e); 
       } 
       isExtend = true; 
      } 
      if (isExtend) { 
       boolean isSame = false; 
       for (Object i : listTest) { 
        if (((Integer) i).intValue() == rowIndex) { 
         isSame = true; 
        } 
       } 
       if (!isSame) { 
        isExtend = false; 
        super.changeSelection(rowIndex, columnIndex, toggle, 
         extend); 
       } 
      } else { 
       super 
        .changeSelection(rowIndex, columnIndex, toggle, extend); 
      } 
     } 

Это просто для анализа, забыл чистоту и производительность: D Если вам нужно получить подробную информацию добавить комментарий.