gpt4 book ai didi

java - 将动态二维数组插入 TableView

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

基本上我有四个二维矩阵,我想将每个矩阵插入到一个单独的表格 View 中。范围是动态的,列应序列化为 {1, 2, 3 ..etc}

我正在尝试创建一个用于插入的函数,但除了定义固定长度并仅使用所需的范围之外,我找不到其他方法。

int rowLen, colLen = textfield_input;

double[][] Ci = new double[rowLen][colLen];
double[][] ThetaP = new double[rowLen][colLen];
double[][] ThetaT= new double[rowLen][colLen];
double[][] Re = new double[rowLen][colLen];

void printMatrix(TableView target, double[][] source) {

}

最佳答案

让你的 table 成为TableView<double[]> (因此每一行都由 double[] 表示),并根据行的大小创建表格列。

如果您可以假设您的数组是矩形的(即 source[i].length 对于所有 i 都是相同的),您可以这样做:

void printMatrix(TableView<double[]> target, double[][] source) {

target.getColumns().clear();
target.getItems().clear();

int numRows = source.length ;
if (numRows == 0) return ;

int numCols = source[0].length ;

for (int i = 0 ; i < numCols ; i++) {
TableColumn<double[], Number> column = new TableColumn<>("Column "+i);
final int columnIndex = i ;
column.setCellValueFactory(cellData -> {
double[] row = cellData.getValue();
return new SimpleDoubleProperty(row[columnIndex]);
});
target.getColumns().add(column);
}

for (int i = 0 ; i < numRows ; i++) {
target.getItems().add(source[i]);
}
}

如果数组可能不是矩形,您可以随时添加其他列。您需要小心确保不会从构成行的任何数组中建立索引:

void printMatrix(TableView<double[]> target, double[][] source) {

target.getColumns().clear();
target.getItems().clear();

int numRows = source.length ;

for (int rowIndex = 0 ; rowIndex < numRows ; rowIndex++) {
for (int i = target.getColumns().size(); i < source[rowIndex].length ; i++) {
TableColumn<double[], Number> column = new TableColumn<>("Column "+i);
final int columnIndex = i ;
column.setCellValueFactory(cellData -> {
double[] row = cellData.getValue();
double value ;
if (row.length <= columnIndex) {
value = 0 ;
} else {
value = row[columnIndex] ;
}
return new SimpleDoubleProperty(value);
});
target.getColumns().add(column);
}
target.getItems().add(source[rowIndex]);
}
}

关于java - 将动态二维数组插入 TableView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44782641/

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