0
該人定義了他們想要的行數,例如, 2.然後創建2行對象ItemSet。TableView,使用'setCellValueFactory'方法不起作用
public void initialize(URL location, ResourceBundle resources) {
btnCreateShop.setOnAction(e -> validate(0));
ObservableList<String> options =
FXCollections.observableArrayList(
"False", "True"
);
cbPermission.setItems(options);
cbPermission.getSelectionModel().selectFirst();
tbShopMaker.setDisable(true);
}
private void validate(int idValidate) { //This method basically ALLOWS the table to be intialized IF some random conditions are met.
if(idValidate == 0){
if(tfShopName.getText().trim().length() == 0){
//stuff occurs... ignore this line and if statement
}
tbShopMaker.setDisable(false);
initializeTableView();
}
}
@FXML TableColumn tcRow1, tcRow2, tcRow3, tcRow4, tcRow5, tcRow6, tcRow7, tcRow8, tcRow9;
private void initializeTableView() {
lblShopName.setText("Shop Name: " + tfShopName.getText());
lblShopRows.setText("Shop Rows: " + tfShopRows.getText());
final ObservableList<ItemSet> data = FXCollections.observableArrayList();
for(int i=0;i<Integer.parseInt(tfShopRows.getText()); i++){
data.add(new ItemSet());
}
tcRow1.setCellValueFactory(
new PropertyValueFactory<ItemSet, Integer>("item1")
);
tcRow2.setCellValueFactory(
new PropertyValueFactory<ItemSet, Integer>("item2")
);
tcRow3.setCellValueFactory(
new PropertyValueFactory<ItemSet, Integer>("item3")
);
tcRow4.setCellValueFactory(
new PropertyValueFactory<ItemSet, Integer>("item4")
);
tcRow5.setCellValueFactory(
new PropertyValueFactory<ItemSet, Integer>("item5")
);
tcRow6.setCellValueFactory(
new PropertyValueFactory<ItemSet, Integer>("item6")
);
tcRow7.setCellValueFactory(
new PropertyValueFactory<ItemSet, Integer>("item7")
);
tcRow8.setCellValueFactory(
new PropertyValueFactory<ItemSet, Integer>("item8")
);
tcRow9.setCellValueFactory(
new PropertyValueFactory<ItemSet, Integer>("item9")
);
tblShop.getItems().setAll(data);
tblShop.setEditable(true);
}
這是我的表視圖控制器內部類的代碼。它根據用戶輸入的其他信息設置表格的內容。
這裏是套裝模型
public class ItemSet {
int[] items = new int[9];
public ItemSet(int... args){
for(int i = 0; i<args.length; i++){
items[i] = args[i];
}
}
public int getItem1(){
return items[0];
}
public int getItem2(){
return items[1];
}
public int getItem3(){
return items[2];
}
public int getItem4(){
return items[3];
}
public int getItem5(){
return items[4];
}
public int getItem6(){
return items[5];
}
public int getItem7(){
return items[6];
}
public int getItem8(){
return items[7];
}
public int getItem9(){
return items[8];
}
}
它一直是艱難的,我最近掌握設定內容,考慮到我剛剛從擺動移民到JavaFX的這一概念。我需要指導,或者幫助解決這個問題。
究竟是如何不工作?它會引發錯誤嗎?或者是其他東西? – PatJ 2015-04-03 15:30:57