在上下文菜单项上显示弹出窗口单击Java fx

时间:2015-07-29 06:42:10

标签: java javafx

我是Java和Java FX的新手,我在上下文菜单点击中创建弹出窗口时遇到了很多困难。我的要求是

  1. 树视图 - 完成
  2. 显示具有少量选项的上下文菜单新建,在每个树节点上打开 - 完成
  3. 现在,当我在上下文菜单中单击“新建”时,我需要显示一个弹出窗口,其中显示文本和按钮。单击该按钮时,在文本框中输入的文本应在树中创建为子项。 - 在此挣扎
  4. 就像我们右键点击netbeans并看到新按钮一样。有人请帮忙。

    非常感谢你!

2 个答案:

答案 0 :(得分:1)

public class MyPopUp extends Stage {
   public MyPopUp () {
    super();
    this.setTitle("Pop");
    this.setResizable(false);
    // The important part
    this.initModality(Modality.APPLICATION_MODAL);

    BorderPane borderPaneOptionPane = new BorderPane();
    borderPaneOptionPane.setCenter(new TextArea()); // For example

    Button closeButton = new Button("Close");
    closeButton.setOnAction(event -> {
        this.hide();
    });

    borderPaneOptionPane.setPadding(new Insets(5));

    Scene s = new Scene(borderPaneOptionPane);
    this.setScene(s);
}}

然后只需使用.show方法将其设置为可见。

希望我能帮助你。

问候Kaito

答案 1 :(得分:0)

Kaitos MyPopUp的实施,对初学者来说可能有点帮助。

    MyPopUp popUp = new MyPopUp();

    ContextMenu contextMenu = new ContextMenu();
    MenuItem newItem = new MenuItem("Call PopUp");
    newItem.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent event) {
            popUp.show();
        }
    });
    contextMenu.getItems().addAll(newItem);

要向TableView添加上下文菜单,您可以执行以下操作:

    tableView.addEventHandler(MouseEvent.MOUSE_CLICKED,  new EventHandler<MouseEvent>() {
        @Override public void handle(MouseEvent e) {
            if (e.getButton() == MouseButton.SECONDARY)  
                contextMenu.show(tableView, e.getScreenX(), e.getScreenY()); 
        }
    });