Использование JComboBox в качестве редактора ячеек в JTable и сохранение изменений - PullRequest
0 голосов
/ 14 марта 2012

Я использую JComboBox в качестве редактора ячеек для моего JTable.Когда я выбираю одно из значений в раскрывающемся списке ComboBox, setValueAt не вызывается.Я знаю это, потому что я переопределил функцию.На основании значения, выбранного в этой ячейке, значение в другой ячейке той же таблицы является фиксированным.Кроме того, мне нужно знать, какой actionListener для этого события, т.е. когда я изменяю значение в ComboBox.

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

@Override 
public void setValueAt(Object o,int row,int col)
{
    super.setValueAt(o, row, col);

    if(((String)o).matches("1"))
    {
        super.setValueAt(o, col-1, row+1);
        return;
    }

    if(((String)o).contains("/"))
        super.setValueAt(((String)o).substring(2), col-1, row+1);
    else
        super.setValueAt("1/"+(String)o, col-1, row+1);
}

1 Ответ

1 голос
/ 15 марта 2012

Я только что нашел способ ...

Мне нужно добавить actionListener к компоненту JComboBox, который я создал как член класса CellEditor, и в функции слушателя мне нужно вызвать stopCellEditing, чтобыsetValueAt вызывается ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...