0

在此处输入图像描述当表格视图数据(任何行数据)有任何错误时,我想将起始单元格的图形设置为错误图像。我在更新方法中使用以下代码。

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 或者我想突出显示整个单元格。非常感谢任何帮助

4

1 回答 1

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);
            }
        }
    };

在此处输入图像描述

于 2013-11-12T11:35:13.433 回答