TreeView에서 TreeItems에 청취자를 연결하는 방법을 마침내 다소 파악한 후에 시간이 지나면 아마도 그렇게하는 것이 옳은 방법 일 수 있지만 지금까지는 작동하는 것 같습니다. 한가지는 아니지만, 그게 "레이블"또는 더 나은 TreeItems의 텍스트가 더 이상 표시되지 않습니다. JavaFX TreeItem 문자열이 나타나지 않습니다
누구든지 내 코드를보고 나에게 완전히 잘못되었거나 텍스트가 더 이상 표시되지 않는 이유는 무엇입니까? 미리 감사드립니다.
은 코드 : 사용자 지정 셀이 정의되면, setText()
메소드가 오버라이드 (override) updateItem()
방법에
TreeView<String> tree = new TreeView<>();
TreeItem<String> treeRoot = new TreeItem<>(Login.name + " - " + Login.accountType);
treeRoot.getChildren().addAll(new TreeItem<>("Branches"),
new TreeItem<>("Planning"), new TreeItem<>("Courses"),
new TreeItem<>("Add new item"));
treeRoot.getChildren().get(1).getChildren().addAll(
new TreeItem<>("2014 - Q1"), new TreeItem<>("2014 - Q2"),
new TreeItem<>("2014 - Q3"), new TreeItem<>("2014 - Q4"));
treeRoot.getChildren().get(3).getChildren().addAll(
new TreeItem<>("Branch"), new TreeItem<>("Course"));
for(String str : loadBranchData()) {
treeRoot.getChildren().get(0).getChildren().add(
new TreeItem<>(str));
}
for(String str : loadCourseData()) {
treeRoot.getChildren().get(2).getChildren().add(
new TreeItem<>(str));
}
for(int c = 0; c <= 2; c++) {
treeRoot.getChildren().get(c).setExpanded(true);
}
treeRoot.setExpanded(true);
tree.setPrefWidth(PREFWIDTH);
tree.setRoot(treeRoot);
tree.setShowRoot(true);
tree.setCellFactory(new Callback<TreeView<String>,TreeCell<String>>(){
@Override
public TreeCell<String> call(TreeView<String> p) {
return new EpicTreeCell();
}
});
...
private final class EpicTreeCell extends TreeCell<String> {
@SuppressWarnings("unchecked")
super.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent evt) {
System.out.println("TEST?");
}
});
}
청취자는 실제로 btw를 작동시키고, 출력하기 위해 "TEST"를 인쇄합니다. – Taerus