繁体   English   中英

JSpinner更新

[英]JSpinner Update

我创建一列的dataTable和cellEditor。 本专栏是简单的jSpinner。 我有以下问题。 当我在微调器中输入一些值并选择另一行时,上一行中的值将不会更改。 如果按,它将完成。 如果我选择或按钮,它也会完成。 但是,如果我输入值并更改选择,将无法完成。 请帮助。 这是CellEditor代码。

public class DurationTableCellEditor extends AbstractCellEditor implements TableCellEditor{

final JSpinner spinner = new JSpinner();

// Initializes the spinner.
public DurationTableCellEditor() {
    spinner.setModel(new SpinnerNumberModel(1,1,50000,1));        
}

// Prepares the spinner component and returns it.
public Component getTableCellEditorComponent(JTable table, Object value,
        boolean isSelected, int row, int column) {
    spinner.setValue(new Integer(value.toString()).intValue());
    spinner.setCursor(null);
    return spinner;
}

// Enables the editor only for double-clicks.
@Override
public boolean isCellEditable(EventObject evt) {
    if (evt instanceof MouseEvent) {
        return ((MouseEvent)evt).getClickCount() >= 1;
    }
    return true;
}

// Returns the spinners current value.
public Object getCellEditorValue() {
    return spinner.getValue();
}

}

commitEdit()

// Returns the spinners current value.
public Object getCellEditorValue() {
    spinner.commitEdit();
    return spinner.getValue();
}

目前尚不清楚如何更新数据模型,但是一种方法是在CellEditor实现ChangeListener ,就像本示例中实现ItemListener 作为参考,请参见如何使用表:使用其他编辑器 特别要看一下fireEditingStopped() 最后,您需要一个对应的TableCellRenderer

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM