Javafx 2 JavaFX2.2-动态表视图-表数据
下面的javafx代码没有生成2行2列,而是显示2列1行 代码的逻辑 列变量。添加带有for循环的列以使表成为动态的。计划使用for循环添加数据Javafx 2 JavaFX2.2-动态表视图-表数据,javafx-2,Javafx 2,下面的javafx代码没有生成2行2列,而是显示2列1行 代码的逻辑 列变量。添加带有for循环的列以使表成为动态的。计划使用for循环添加数据 import java.util.ArrayList; import java.util.List; import javafx.beans.property.SimpleStringProperty; import javafx.beans.value.ObservableValue; import javafx.collections.FXCol
import java.util.ArrayList;
import java.util.List;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TableColumn.CellDataFeatures;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.util.Callback;
public class FXMLTableViewController {
@FXML private TableView tableview;
@FXML
private void initialize() {
System.out.println(tableview);
List<String> columns = new ArrayList<String>();
columns.add("col1");
columns.add("col2");
TableColumn [] tableColumns = new TableColumn[columns.size()];
int columnIndex = 0;
for(int i=0 ; i<columns.size(); i++) {
final int j = i;
TableColumn col = new TableColumn(columns.get(i));
col.setCellValueFactory(new Callback<CellDataFeatures<ObservableList,String>,ObservableValue<String>>(){
public ObservableValue<String> call(CellDataFeatures<ObservableList, String> param) {
return new SimpleStringProperty(param.getValue().get(j).toString());
}
});
tableview.getColumns().addAll(col);
}
ObservableList<ObservableList> csvData = FXCollections.observableArrayList();
ObservableList<String> row = FXCollections.observableArrayList();
ObservableList<String> row1 = FXCollections.observableArrayList();
row.addAll("d1");
row.addAll("d11");
row1.addAll("d2");
row1.addAll("d22");
csvData.add(row);
csvData.add(row1);
tableview.getItems().add(csvData);
}
}
import java.util.ArrayList;
导入java.util.List;
导入javafx.beans.property.SimpleStringProperty;
导入javafx.beans.value.observeValue;
导入javafx.collections.FXCollections;
导入javafx.collections.ObservableList;
导入javafx.fxml.fxml;
导入javafx.scene.control.TableColumn;
导入javafx.scene.control.TableView;
导入javafx.scene.control.TableColumn.CellDataFeatures;
导入javafx.scene.control.cell.PropertyValueFactory;
导入javafx.util.Callback;
公共类FXMLTableViewController{
@FXML私有表视图表视图;
@FXML
私有void初始化(){
System.out.println(tableview);
列表列=新的ArrayList();
列。添加(“第1列”);
列。添加(“col2”);
TableColumn[]tableColumns=新TableColumn[columns.size()];
int columnIndex=0;
对于(int i=0;i删除csvData,它将起作用。请执行以下操作:
//ObservableList<ObservableList> csvData = FXCollections.observableArrayList();
ObservableList<String> row = FXCollections.observableArrayList();
ObservableList<String> row1 = FXCollections.observableArrayList();
row.addAll("d1");
row.addAll("d11");
row1.addAll("d2");
row1.addAll("d22");
//csvData.add(row);
//csvData.add(row1);
tableview.getItems().add(row);
tableview.getItems().add(row1);
//ObservableList csvData=FXCollections.observableArrayList();
ObservableList行=FXCollections.observableArrayList();
ObservableList行1=FXCollections.observableArrayList();
第1行加全部(“d1”);
第11行加全部(“d11”);
第1行。添加所有(“d2”);
第1行。添加所有(“d22”);
//csvData.add(行);
//csvData.add(第1行);
tableview.getItems().add(行);
tableview.getItems().add(第1行);
因为csvData是一个数组,您正在单元格中添加数组。我已经测试过,它可以正常工作