JComboBox не открывается в jTable

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

public class CellEditor extends DefaultCellEditor{

private static final long serialVersionUID = 1L;

public CellEditor(String[] items) {
    super(new JComboBox(items));
}
}

public class ComboBoxRenderer extends JComboBox implements TableCellRenderer {
/****/
private static final long serialVersionUID = 1L;

public ComboBoxRenderer(String[] items) {
    super(items);
}

public Component getTableCellRendererComponent(JTable table, Object value,
        boolean isSelected, boolean hasFocus, int row, int column) {

    if (isSelected) {
        this.setForeground(table.getSelectionForeground());
        super.setBackground(table.getSelectionBackground());
    } else {
        this.setForeground(table.getForeground());
        this.setBackground(table.getBackground());
    }        
    this.setSelectedItem(value);// Select the current value      
    return this;
}
}

person Anto    schedule 25.07.2011    source источник
comment
Опубликуйте SSCCE, пожалуйста!   -  person Moonbeam    schedule 25.07.2011
comment
Почему вы расширяете DefaultCellEditor? В этом нет необходимости.   -  person camickr    schedule 26.07.2011


Ответы (1)


пожалуйста, прочтите руководство по JTable, есть редакторы и визуализаторы и Использование поля со списком в качестве редактора, несколько примеров на этом форуме (включая автозаполнение JComboBox в JTable) или здесь или здесь

но в основном это ваш вопрос о (проверьте, если вы установили это)

public boolean isCellEditable(int row, int col) {
    if (col == someInt) {
        return true;
    } else if (col == TableColumnsStartsWithZero) {
        return true;
    } else {
        return false;
    }
}
person mKorbel    schedule 25.07.2011