gpt4 book ai didi

arrays - 用二维数组填充表格 View

转载 作者:行者123 更新时间:2023-12-02 08:08:38 25 4
gpt4 key购买 nike

我是 Javafx 新手,想知道如何从二维字符串数组填充表格 View :

    String[][] staffArray = (String[][]) connection.getAll("StaffServices");
ObservableList row = FXCollections.observableArrayList(staffArray);

//don't know what should go in here

staffTable.setItems(row);

非常感谢您的回复。

最佳答案

我认为JavaFX应该有一个只需要二维数组并制作表格的方法,但制作起来并不难。技巧是使用 CellValueFactory 获取每列的正确数组索引,而不是获取 bean。这与我使用的代码类似。

import java.util.Arrays;
import javafx.application.Application;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TableColumn.CellDataFeatures;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Callback;

public class TableViewSample extends Application {

@Override
public void start(Stage primaryStage) {
StackPane root = new StackPane();
String[][] staffArray = {{"nice to ", "have", "titles"},
{"a", "b", "c"},
{"d", "e", "f"}};
ObservableList<String[]> data = FXCollections.observableArrayList();
data.addAll(Arrays.asList(staffArray));
data.remove(0);//remove titles from data
TableView<String[]> table = new TableView<>();
for (int i = 0; i < staffArray[0].length; i++) {
TableColumn tc = new TableColumn(staffArray[0][i]);
final int colNo = i;
tc.setCellValueFactory(new Callback<CellDataFeatures<String[], String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(CellDataFeatures<String[], String> p) {
return new SimpleStringProperty((p.getValue()[colNo]));
}
});
tc.setPrefWidth(90);
table.getColumns().add(tc);
}
table.setItems(data);
root.getChildren().add(table);
primaryStage.setScene(new Scene(root, 300, 250));
primaryStage.show();
}
}

关于arrays - 用二维数组填充表格 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20769723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com