observableList内のデータベースから来る値の代わりにオブジェクトサークルを受け取るようにセル列を設定したいと考えています。値は、他の列を反映するその列に配置されます(col AとB(左から右へ)と言うことができます - 基本的に同じ情報が含まれています - 円Bを変更して円オブジェクトを表すことを望みました。あなたが提案を持っている場合は、お知らせください。javafx tablecolumnセルの変更
status.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList, Circle>, ObservableValue<Circle>>() {
@Override
public ObservableValue<Circle> call(TableColumn.CellDataFeatures<ObservableList, Circle> param) {
String c = (String) param.getValue().get(2); //getting all data in column 2 of the row
System.out.println(c);
switch(c){
case "High":
circle.setFill(Color.GREEN);
healthstatus.setStyle("-fx-alignment: CENTER;");
break;
case "Medium":
circle.setFill(Color.YELLOW);
healthstatus.setStyle("-fx-alignment: CENTER;");
break;
case "Low":
circle.setFill(Color.RED);
healthstatus.setStyle("-fx-alignment: CENTER;");
break;
default:
circle.setFill(Color.BLUEVIOLET);
}
return new SimpleObjectProperty(circle);
}
});
を私は設定値に応じてクラスを作成しなくても、私が持っているコードを続行することを好む。
私は私を表示する画像を添付しました結果はこれまで通りです。
ありがとうございます。 Image
2列は同じ情報が含まれているが、彼らはそれを表示する方法が異なる場合は、両方に同じ 'cellValueFactory'を使用しています。データの表示方法を変更するには、別の 'cellFactory'を使います。 –