【发布时间】:2018-12-02 14:40:40
【问题描述】:
我目前正在开发一个程序,其中您有一张桌子。在那里,列应该是可变的。这意味着根据您指定的内容,将创建许多列。我已经实现了这个:
public void setAlph(String alphString){
ArrayList<Character> alphNew = new ArrayList<Character>();
for (char c : alphString.toCharArray()) {
alphNew.add(c);
}
alph = alphNew;
alph.add('#');
for(int i = 0; i < states.size(); i++){
for(int j = 0; j < alph.size(); j++){
states.get(i).addChar(alph.get(j));
}
}
mainWindowController.getTableRules().getColumns().clear();
TableColumn statesCol = new TableColumn("state");
statesCol.setCellValueFactory(new PropertyValueFactory<State, String>("name"));
mainWindowController.getTableRules().getColumns().addAll(statesCol);
for(int i = 0; i < getAlph().size(); i++){
TableColumn tc = new TableColumn("" + getAlph().get(i));
tc.setCellValueFactory(new MapValueFactory<String>("" + getAlph().get(i)));
mainWindowController.getTableRules().getColumns().addAll(tc);
}
}
问题是我现在不知道如何将值插入到列中。 “状态”类(值的来源)如下所示:
public class State {
private final SimpleStringProperty name;
private Map<Character, String> map;
public State(String name) {
this.name = new SimpleStringProperty(name);
map = new HashMap<Character, String>();
}
public String getName() {
return name.get();
}
public SimpleStringProperty nameProperty() {
return name;
}
public void setName(String name) {
this.name.set(name);
}
public String toString(){
return name.get();
}
public void addChar(char c){
map.put(c, "null");
}
public String getValue(char key){
return map.get(key);
}
}
现在我希望将 HashMap 中的值放入列中。只有我真的不知道该怎么做:/。有人可以帮我吗? 先感谢您! lg bttl
【问题讨论】: