繁体   English   中英

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

[英]Display pop up window on context menu item click Java fx

我是Java和Java FX的新手,在上下文菜单单击上创建弹出窗口时我一直很努力。 我的要求是

  1. 树状视图-完成
  2. 显示上下文菜单,没有几个选项新建,在每个树节点上打开-完成
  3. 现在,当我单击上下文菜单中的“新建”时,我需要显示一个弹出窗口,其中显示的文本和一个按钮。 单击按钮后,应在树中将在文本框中输入的文本创建为子级。 -在这个上苦苦挣扎

就像我们右键单击netbeans并看到新按钮一样。 有人请帮忙。

非常感谢!

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

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()); 
        }
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM