Witam nie udało mi sie dojść do rozwiązania problemu samemu wiec zapytam, wzorując się na różnych materiałach w sieci ustawiłem JSPinner jako edytor dla komórek jednej kolumny i do tego momentu wszystko jest ok klikając strzałki w górę w dół i opuszczając aktywną komórkę wywoływane jest setValueAt w moim DataModel z wybraną wartością.
Jednak gdy wprowadzę wartość z klawiatury bez klikania strzałkami i opuszczę pole spinnera setValueAt dostaje wartość która była wcześniej ustawiona, a chciał bym aby zapisywała się aktualna wartość.
Również chciał bym żeby po wpisaniu wartości i wciśnięciu entera wartość była ustawiana obecnie trzeba wcisnąć enter dwukrotnie.
Zamieszczam kod uzywam dla CellEditor, reszta wyklikana jest w netbeansie
public class SpinnerColumn extends AbstractCellEditor implements TableCellEditor {
private JSpinner editSpinner;
public SpinnerColumn(JTable table, int column) {
editSpinner = new JSpinner();
editSpinner.setBorder(new LineBorder(Color.BLUE));
table.getColumnModel().getColumn(column).setCellEditor(this);
}
@Override
public Object getCellEditorValue() {
return editSpinner.getValue();
}
@Override
public Component getTableCellEditorComponent(final JTable table, Object value, boolean isSelected, final int row, final int column) {
editSpinner = new JSpinner(new SpinnerNumberModel(0, 0, 99999, 1));
editSpinner.setBorder(null);
editSpinner.setValue((Object) value);
return editSpinner;
}
}