我想在表视图数据(任何行数据)中出现任何错误时将起始单元格的图形设置为eror图像。我在更新方法中使用以下代码。
public void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
String text = getString();
setText(empty ? null : text);
String text2 = text.trim();
boolean isHex = text2.matches("^[0-9A-Fa-fx]+$");
// Pattern compile = Pattern.compile("^[0-9A-Fa-fx]+.*");
// Matcher matcher = compile.matcher(text);
// boolean find = matcher.find();
// getTableView().getColumns().;
setGraphic(null);
if (!isHex) {
getStyleClass().add("oneCell");
// this.setTextFill(Color.RED);
// getTableView().getColumns().get(0;
revertbackchanges();
Image error = new Image(getClass().getResourceAsStream("twobuttons/icon_error_1.png"));
} else {
setGraphic(null);
getStyleClass().remove("oneCell");
}
这里我正在检查单元格数据是否数据是十六进制值,如果输入十六进制以外,那么我将单元格的颜色更改为红色。现在我想在第一个单元格上显示类似图标的错误。如何从表格视图中获取第一个单元格并在其上设置图形。如图所示,我可以显示错误,其中相应的单元格上用户输入了错误的值,但同时我想显示错误图标和错误图标命令单元格即TX_default或我想突出显示整个单元格。对此非常感谢
答案 0 :(得分:1)
这次我的工作累了..
Image img =new Image(getClass().getResourceAsStream("Add-Male-User-icon.png"));
ImageView imgs =new ImageView(img);
tablecol.setCellFactory(new Callback<TableColumn<CheckDo, String>, TableCell<CheckDo, String>>() {
@Override
public TableCell<CheckDo, String> call(TableColumn<CheckDo, String> p) {
return new TableCell<CheckDo, String>() {
@Override
public void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
if (!isEmpty())
this.setGraphic(imgs);
}
}
};