我想检查用户是否输入了整数,如果输入了字符串或字段为空,我想显示错误。
我在控制台中输入字符串时遇到NumberFormatException,但无法确定在哪里添加try catch。
这是我的一个列的示例,其他列遵循相同的样式:
regularityColumn.setMinWidth(130);
regularityColumn.setCellValueFactory(new PropertyValueFactory<>
("taskTypeRegularity"));
table.getColumns().addAll(....., regularityColumn);
如果找到经理用户,则表格设置为可编辑以及以下内容:
regularityColumn.setCellFactory(TextFieldTableCell.forTableColumn(
new IntegerStringConverter()));
regularityColumn.setOnEditCommit(e -> {
TaskType selectedTask = table.getSelectionModel()
.getSelectedItem();
selectedTask.setTaskTypeRegularityInt(e.getNewValue());
});
答案 0 :(得分:1)
创建自己的StringConverter。例外来自IntegerStringConverter
。
所以替换这个...
regularityColumn.setCellFactory(TextFieldTableCell.forTableColumn(
new IntegerStringConverter()));
有这样的......
regularityColumn.setCellFactory(TextFieldTableCell.forTableColumn(
new StringConverter<Integer>(){
Integer fromString(String s) {
//convert the string to integer yourself and catch the exception
}
String toString(Integer i) {
//convert the integer to String yourself and catch the exception
}
}
)
);
请注意我输入的代码没有IDE,所以请原谅任何拼写错误。如果您将在多个地方使用它,那么将其转换为可以重复使用的自己的类,例如MyIntegerStringConverter
。