質問: null || empty) { setText(""); setStyle(""); } else { setText(item); setTextFill(Color.BLACK); // * 現在は、Columnで判定していますが、setRowFactory()からの別ColumnのCellを参照する方法を教えてください if (item.equals("AAAA")) { setStyle("-fx-background-color: lightgray;" + "-fx-alignment: center;"); } else { setStyle("-fx-alignment: center-right"); } } } };
回答: updateItemメソッド内でgetIndex()メソッドを呼び出すと行Indexが取得できます TableColumnオブジェクトのgetCellDataに行Indexを渡すとCellのデータが取得できますので、 そちらで判断出来るかと思います ``` // 下記のように定義していた場合 @FXML private TableColumn col1; @FXML private TableColumn col2; // 〜中略〜 // このような感じになります col2.setCellFactory((column) -> { @Override protected void updateItem(Boolean item,boolean empty){ super.updateItem(item, empty); if(empty) return; if(col1.getCellData(getIndex()) == 2) // getIndex()が現在の行のIndexを返します setStyle("-fx-background-color: green;"); } } ```