这是我的问题。 我创建了一个硬编码的树视图,其中包含一些项目。 其中有节点和叶节点。 我将如何找到所选节点是叶节点。 我想将该节点的内容传递给新标签。
public void SetTreeSample(){
TreeItem<String> rootItem = new TreeItem<>("elan/6");
rootItem.setExpanded(true);
TreeItem<String> item = new TreeItem<>("Verkauf");
TreeItem<String> itemBeleg = new TreeItem<>("Belegbearbeitung");
itemBeleg.getChildren().add(new TreeItem<>("Verkaufsbeleg anlegen"));
itemBeleg.getChildren().add(new TreeItem<>("Verkaufsbelege bearbeiten"));
itemBeleg.getChildren().add(new TreeItem<>("Verkaufsbeleg abrufen"));
item.getChildren().add(itemBeleg);
TreeItem<String> itemXML = new TreeItem<>("XML-Schnittstelle");
item.getChildren().add(itemXML);
TreeItem<String> itemKun = new TreeItem<>("kunden");
item.getChildren().add(itemKun);
TreeItem<String> itemKund = new TreeItem<>("kunden-Auskun ft");
item.getChildren().add(itemKund);
TreeItem<String> itemArt = new TreeItem<>("Artikel-Auskunft");
item.getChildren().add(itemArt);
rootItem.getChildren().add(item);
item = new TreeItem<>("Kassenprogramme");
item.getChildren().add(new TreeItem<>("Kassenprogramm"));
item.getChildren().add(new TreeItem<>("Gutscheinverwaltung"));
rootItem.getChildren().add(item);
item = new TreeItem<>("Versand");
rootItem.getChildren().add(item);
item = new TreeItem<>("Bestandsfutrung");
rootItem.getChildren().add(item);
TreeView<String> treeview = new TreeView<>(rootItem);
StackPane root = new StackPane();
root.getChildren().add(treeview);
treeview.setOnMouseClicked(new EventHandler<MouseEvent>()
{
@Override
public void handle(MouseEvent mouseEvent)
{
if(mouseEvent.getClickCount() == 2)
{
TreeItem<String> item = treeview.getSelectionModel().getSelectedItem();
AddTab(item.getValue());
}
}
});
rootLayout.setLeft(root);
}
public void AddTab(String Text){
FXMLLoader loader = new FXMLLoader();
loader.setLocation(SampleApp2.class.getResource("view/NewAP.fxml"));
TabPane tabPane = (TabPane) rootLayout.getCenter();
tabPane.setTabClosingPolicy(TabClosingPolicy.ALL_TABS);
Tab tabdata = new Tab();
Label tabALabel = new Label(Text);
tabdata.setGraphic(tabALabel);
tabPane.getTabs().add(tabdata);
}
答案 0 :(得分:0)
TreeItem上有一个方法isLeaf()。
TreeItem<String> selectedItem = treeview.getSelectionModel().getSelectedItem();
if (selectedItem.isLeaf()) {
AddTab(item.getValue());
}