如何在javafx表视图的更新方法中获取特定单元格?

时间:2013-11-12 10:56:07

标签: javafx-2 javafx

enter image description here我想在表视图数据(任何行数据)中出现任何错误时将起始单元格的图形设置为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或我想突出显示整个单元格。对此非常感谢

1 个答案:

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

enter image description here