我希望使用单元格编辑器和DocumentFilter来防止用户向表格单元格中输入某些字符。
各栏如下:
对于库存清点,成本和最小数量,我将使用JFormattedTextField。
这又如何改善呢?
public class ProductTableCellEditor extends AbstractCellEditor implements TableCellEditor
{
private TableCellEditor editor;
@Override
public Object getCellEditorValue()
{
if (editor != null) {
return editor.getCellEditorValue();
}
return null;
}
@Override
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column)
{
JTextField textField = new JTextField();
textField.setFont(ApplicationStyles.TABLE_FONT);
switch (column)
{
case 0:
((AbstractDocument) textField.getDocument()).setDocumentFilter(new ProductTableDocumentFilter());
editor = new DefaultCellEditor(textField);
break;
case 1:
((AbstractDocument) textField.getDocument()).setDocumentFilter(new ProductTableDocumentFilter());
editor = new DefaultCellEditor(textField);
break;
case 2:
throw new UnsupportedOperationException("Not yet supported....");
case 3:
throw new UnsupportedOperationException("Not yet supported....");
case 4:
throw new UnsupportedOperationException("Not yet supported....");
default:
throw new UnsupportedOperationException("Not yet supported....");
}
return editor.getTableCellEditorComponent(table, value, isSelected, row, column);
}
}发布于 2015-08-14 19:10:34
(AbstractDocument) textField.getDocument()这是个糟糕的做法。
我建议您执行以下选项之一:
toAbstractDocument(Document document)TextField类(如? extends Document document )中创建一个字段。https://codereview.stackexchange.com/questions/100879
复制相似问题