import java.util.HashMap; import javafx.application.Application; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.TreeCell; import javafx.scene.control.TreeItem; import javafx.scene.control.TreeView; import javafx.scene.input.ClipboardContent; import javafx.scene.input.DragEvent; import javafx.scene.input.Dragboard; import javafx.scene.input.MouseEvent; import javafx.scene.input.TransferMode; import javafx.scene.layout.BorderPane; import javafx.stage.Stage; import javafx.util.Callback; public class FXApplet extends Application { TreeView treeView; HashMap grpList = new HashMap(); HashMap appList = new HashMap(); @Override public void start(Stage primaryStage) { BorderPane root = new BorderPane(); TreeItem rootItem = new TreeItem("RootItem:RT"); TreeItem grpItem1 = new TreeItem("GRPItem1:GRP"); grpList.put("GRPItem1:GRP", grpItem1); TreeItem ch1Item1 = new TreeItem("GR1Item1:APP"); TreeItem ch1Item2 = new TreeItem("GR1Item2:APP"); TreeItem ch1Item3 = new TreeItem("GR1Item3:APP"); TreeItem ch1Item4 = new TreeItem("GR1Item4:APP"); appList.put("GR1Item1:APP", ch1Item1); appList.put("GR1Item2:APP", ch1Item2); appList.put("GR1Item3:APP", ch1Item3); appList.put("GR1Item4:APP", ch1Item4); grpItem1.getChildren().addAll(ch1Item1, ch1Item2, ch1Item3, ch1Item4); TreeItem grpItem2 = new TreeItem("GRPItem2:GRP"); grpList.put("GRPItem2:GRP", grpItem2); TreeItem ch2Item1 = new TreeItem("GR2Item1:APP"); TreeItem ch2Item2 = new TreeItem("GR2Item2:APP"); TreeItem ch2Item3 = new TreeItem("GR2Item3:APP"); TreeItem ch2Item4 = new TreeItem("GR2Item4:APP"); appList.put("GR2Item1:APP", ch2Item1); appList.put("GR2Item2:APP", ch2Item2); appList.put("GR2Item3:APP", ch2Item3); appList.put("GR2Item4:APP", ch2Item4); grpItem2.getChildren().addAll(ch2Item1, ch2Item2, ch2Item3, ch2Item4); rootItem.getChildren().addAll(grpItem1, grpItem2); treeView = new TreeView(); treeView.setRoot(rootItem); cellFactories(); root.setCenter(treeView); Scene scene = new Scene(root, 1020, 700); primaryStage.setTitle("Hello World!"); primaryStage.setScene(scene); primaryStage.show(); } public void cellFactories() { treeView.setCellFactory(new Callback, TreeCell>() { @Override public TreeCell call(TreeView stringTreeView) { final TreeCell treeCell = new TreeCell() { protected void updateItem(String item, boolean empty) { super.updateItem(item, empty); if (item != null) { // System.out.println("item is "+item); setText(item.split(":")[0]); setId(item); } } }; return treeCell; } }); } /** * The main() method is ignored in correctly deployed JavaFX application. * main() serves only as fallback in case the application can not be * launched through deployment artifacts, e.g., in IDEs with limited FX * support. NetBeans ignores main(). * * @param args the command line arguments */ public static void main(String[] args) { launch(args); } }