저는 JavaFX를 처음 사용하며 체크 박스 트리보기에 문제가 있습니다.
루트 값 ** 일련 번호 중 하나의 항목을 비활성화하고 싶지만 JavaFX 설명서에 따르면 불가능합니다.
javafx checkboxTreeItem에서 하나의 항목을 비활성화하는 방법?나는 장애인 클릭 효과 cbTreeViewdisable (treeItems, 3)
어느 한 값 (또는 세트 ID)를 회색으로 어떤 방법이 있나요 그래서 사용자가 사용하지 알고 있습니다.
private TreeView<String> cbTreeView;
@Override
public void start(Stage primaryStage) {
StackPane root = new StackPane();
cbTreeView = new TreeView();
CheckboxTreeItem<String> rootItem = new CheckboxTreeItem("Serial No.");
final CheckboxTreeItem[] treeItems = new CheckboxTreeItem[6];
for (int i = 0; i < 6; i++) {
treeItems[i] = new CheckboxTreeItem(""+i+"");
rootItem.getChildren().addAll(treeItems[i]);
}
root.setExpanded(true);
CheckboxTreeItem rootItem2 = new CheckboxTreeItem("child1");
final CheckboxTreeItem[] treeItems2 = new CheckboxTreeItem[6];
for (int i = 0; i < 6; i++) {
treeItems2[i] = new CheckboxTreeItem(""+i+"");
rootItem2.getChildren().addAll(treeItems2[i]);
}
cbTreeView.setRoot(rootItem);
cbTreeView.setCellFactory(CheckboxTreeCell.<String>forTreeView());
rootItem.getChildren().set(2,rootItem2);
cbTreeViewdisable(treeItems, 3);
//rest of code imports css and draws stage which is not relevant to my question
}
private void cbTreeViewdisable(final CheckboxTreeItem[] treeItems, final int id) {
treeItems[id].setIndependent(Boolean.TRUE);
treeItems[id].setValue(treeItems[id].getValue().toString()+" Note: you can't select this!)");
treeItems[id].selectedProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable,
Boolean oldvalue, Boolean newvalue) {
Platform.runLater(new Runnable() {
@Override
public void run() {
treeItems[id].setSelected(Boolean.FALSE);
}
이 코드는 필자가 가정 한 컴파일러를 본 적이 없다 ... 어떻게 ChackBoxTreeCell을 확장하여 '비활성화 된'상태를 유지하고 모양을 변경하는 것이 좋을까요? –