2016-04-02 57 views
0

我想上下文菜單添加到圈子,當我右鍵單擊它:添加到形狀將ContextMenu了JavaFx

public void ContMen(Stage stage) { 

Group root = new Group(); 
Circle c=new Circle(220,125,10); 
c.setFill(Color.BROWN); 

root.getChildren().add(c); 
Scene scene = new Scene(root, 450, 250); 
stage.setScene(scene); 
stage.show(); 
} 

我怎麼可以添加它。

回答

0

這是一個快速和骯髒的例子添加一個上下文menue到一個圓圈。

public class ContextMenuDemo extends Application { 

    private StackPane root; 

    private Circle circle; 

    private ContextMenu contextMenu; 

    private MenuItem deleteItem; 

    public ContextMenuDemo() { 
    } 

    public static void main(String[] args) { 
     launch(args); 
    } 

    @Override 
    public void start(Stage primaryStage) throws Exception { 
     root = new StackPane(); 

     circle = new Circle(200, 200, 100, Color.RED); 
     circle.setOnMousePressed(this::handleMousePressed); 

     root.getChildren().add(circle); 

     contextMenu = new ContextMenu(); 
     deleteItem = new MenuItem("Delete"); 
     deleteItem.setOnAction(new EventHandler<ActionEvent>() { 
      public void handle(ActionEvent e) { 
       root.getChildren().remove(circle); 
      } 
     }); 
     contextMenu.getItems().add(deleteItem); 

     primaryStage.setScene(new Scene(root, 400, 400)); 
     primaryStage.show();   
    } 

    protected void handleMousePressed(MouseEvent e) { 
     if (e.isPopupTrigger()) { 
      contextMenu.show((Node)e.getSource(), Side.RIGHT, 5, 5); 
      e.consume(); 
     } 
    } 

}