2013-11-12 1 views
0

enter image description here Я хочу установить графику начальной ячейки на изображение eror, если в данных табличного представления есть какая-либо ошибка (любые данные строки). Я использую следующий код внутри метода обновления.Как я могу получить конкретную ячейку в методе обновления вида таблицы javafx?

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

здесь я проверки данных ячейки, являются ли данные шестнадцатеричное значение или нет, если иное, чем гекс вводится тогда я изменить цвет ячейки на красный .Теперь я хочу, чтобы показать ошибку, как значок на 1-я ячейка. Как я могу получить 1-я ячейка из представления таблицы и установить графику на ней. Как показано на изображении, я могу показать ошибку с соответствующей ячейкой, на которой пользователь ввел неправильное значение, но вместе с тем, что я хочу показать и значок ошибки в командной ячейке, т.е. TX_default или я хочу, чтобы выделить всю клеточную .any помощь на этом очень ценится

ответ

1

на этот раз его workied я устал ..

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

+0

я мог в состоянии сделать это, но наряду с этим я хочу, чтобы установить графику 1-й вид таблицы ячейки .like какой-то значок ошибки – Rajesh

+0

@Rajesh использовать один и тот же путь, но только изменение, что даст вам первые имя столбца, например «userid» и пожарный listner ... после пожара он сломал его, наконец, использовал его только один раз –

+0

@Rajesh теперь я редактирую выше ответ и его отлично сработало ... надеюсь, теперь вы получите –

 Смежные вопросы

  • Нет связанных вопросов^_^