JAVAFX使用Map填充多个TableView<;字符串,字符串>;按键
我有4-5个JAVAFX使用Map填充多个TableView<;字符串,字符串>;按键,java,javafx,Java,Javafx,我有4-5个TableViews和一个Map(从PDF表单创建)。我需要使用映射(第一个字符串)中的键和该键的值(第二个字符串)填充表视图 来自FXML的定义(对于一个表): 然后: ObservableList<Map.Entry<String,String>> listData = FXCollections.observableArrayList(Zapytanie_Parametry.entrySet()); INFO_TABLEVIEW = new TableV
TableView
s和一个Map
(从PDF表单创建)。我需要使用映射
(第一个字符串
)中的键和该键的值(第二个字符串
)填充表视图
来自FXML的定义(对于一个表):
然后:
ObservableList<Map.Entry<String,String>> listData = FXCollections.observableArrayList(Zapytanie_Parametry.entrySet());
INFO_TABLEVIEW = new TableView<>(listData);
INFO_TABLEVIEW.getColumns().setAll(COLUMN_INFO_NAME,COLUMN_INFO_VALUE);
observeListData=FXCollections.observearraylist(Zapytanie_Parametry.entrySet());
INFO_TABLEVIEW=新的TABLEVIEW(listData);
INFO_TABLEVIEW.getColumns().setAll(列信息名称、列信息值);
我想知道是否有人能帮助我正确理解如何做到这一点。我可以通过对键和值进行div来分隔列表,然后使用Table.setItems(list)。但也许有另一种方法可以通过一个地图按键切换而不使用其他列表来实现这一点?
for (Map.Entry<String, String> entry:Param.entrySet()){
switch (entry.getKey().substring(0,3)){
case "INF":{
if (entry.getKey().substring(5,8).contentEquals("BEG")){
try{
System.out.println("BEG"); //ok
COLUMN_INFO_WST_NAME.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Map.Entry<String, String>, String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(TableColumn.CellDataFeatures<Map.Entry<String, String>, String> p) {
System.out.println("AAAA"); //not enter this loop
return new SimpleStringProperty(p.getValue().getKey());
}
});
}
catch (Exception ex){
System.out.println(ex.getMessage());
}
}
}
}
}
ObservableList<Map.Entry<String,String>> listData = FXCollections.observableArrayList(Zapytanie_Parametry.entrySet());
INFO_TABLEVIEW = new TableView<>(listData);
INFO_TABLEVIEW.getColumns().setAll(COLUMN_INFO_NAME,COLUMN_INFO_VALUE);