【问题标题】:Display pop up window on context menu item click Java fx在上下文菜单项上显示弹出窗口单击 Java fx
【发布时间】:2015-07-29 06:42:10
【问题描述】:

我对 Java 和 Java FX 非常陌生,并且在单击上下文菜单时创建一个弹出窗口时我一直在努力。我的要求是

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

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

非常感谢!

【问题讨论】:

标签: java javafx


【解决方案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 方法将其设置为可见。

希望我能帮到你。

问候快斗

【讨论】:

  • 非常感谢。所有资源都对我有很大帮助。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    • 2016-08-23
    • 1970-01-01
    • 2013-01-21
    • 1970-01-01
    相关资源
    最近更新 更多