TableColumn
の値を設定する場合は、これまでに回答されているので説明しません。 How to set value to cell in TableView in javafxといくつかの簡単なGoogle検索で詳細を見つけることができます。私は "javafx set tablecolumn value"を検索しました
適切なデータモデルClass
には、データベースから取得するデータセットに適したメソッドがあります。あなたのデータベースには何が入っているのか分かりませんので、写真に投稿したもの、つまりItem Name
、Priority
、Status
を使用しました。
TableView
にはCircle
を必ず追加できますが、データモデルClass
に適切に宣言する必要があります。
あなたも、私は提供しなかったということが必要になりますいくつかのもの:
- あなたはあなたのデータベースのリターンを解析し、適切なデータコンストラクタの呼び出しを行う必要があります。私はあなたにそれを残します。
さて、私が提供しているものとそれを達成するために何をしたのですか。
データベースの戻り値を格納するには、データモデルClass
を使用する必要があります。そのため、正しく設定することが重要です。ですから、あなたが帰ってきたそれぞれのデータポイントについては、適切なset
とget
メソッドが必要です。
データを返すループでは、new DataModel(x, y, z, ...);
を作成し、ObservableList<DataModel>
に追加する必要があります。
メイン:ここ
は、例えばベースドン絵があなたの提供です。Javaの
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
TableView<Data> dataTable = new TableView<>();
TableColumn<Data, String> itemName = new TableColumn<>("Item Name");
itemName.setCellValueFactory(cell -> new SimpleStringProperty(cell.getValue().getName()));
TableColumn<Data, String> priority = new TableColumn<>("Priority");
priority.setCellValueFactory(cell -> new SimpleStringProperty(cell.getValue().getPriority()));
TableColumn<Data, Circle> status = new TableColumn<>("Status");
status.setCellValueFactory(cell -> new SimpleObjectProperty<>(cell.getValue().getStatus()));
dataTable.getColumns().addAll(itemName, priority, status);
ObservableList<Data> data = FXCollections.observableArrayList();
Data high = new Data("toy", "high");
Data medium = new Data("box", "medium");
Data low = new Data("candy", "low");
data.addAll(high, medium, low);
dataTable.setItems(data);
Scene scene = new Scene(dataTable, 500, 500);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Data.java(これは私のデータモデルである)
public class Data {
private String name;
private String priority;
private Circle status;
public Data (String name, String priority){
setName(name);
setPriority(priority);
setStatus(priority);
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public String getPriority(){
return priority;
}
public void setPriority(String priority){
this.priority = priority;
}
public Circle getStatus(){
return status;
}
public void setStatus(String priority){
Circle c = new Circle(5);
switch(priority){
case "high":
c.setFill(Color.GREEN);
break;
case "medium":
c.setFill(Color.YELLOW);
break;
case "low":
c.setFill(Color.RED);
break;
default:
}
status = c;
}
}
あなたが見ることができるように、私はConstructor
でstatus
を提供しなかったのではなく、私が使用しそれを決定するためにPriority
。
これが役に立ちます。
私はもっと多くのコンテンツを追加しました。もしあなたが一見気にしないなら、 @HypnicJerk – jerry