有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用FXML向形状添加上下文菜单

我正在尝试使用JavaFX2FXML向circle元素添加上下文菜单。 在代码中添加菜单效果很好,但在FXML中添加菜单不起作用

FXML:

 <Circle fx:id="connectionStatusCircle" fill="#ff6666" layoutX="14.0" layoutY="11.0" radius="8.0" stroke="BLACK" strokeType="INSIDE">
      <contextMenu>
          <ContextMenu>
              <items>
                  <MenuItem mnemonicParsing="false" text="Unspecified Action" />
              </items>
          </ContextMenu>
      </contextMenu>
</Circle>

引发的异常是:

Caused by: javafx.fxml.LoadException: Invalid property.

有什么想法吗


共 (1) 个答案

  1. # 1 楼答案

    对于Circle,在设计时不可能在FXMl中添加上下文菜单,因为它没有在Circle的属性中定义,所以您必须实用地使用它

    试试这个-

    cm  =new ContextMenu();
        MenuItem a = new MenuItem("A");
        MenuItem b = new MenuItem("B");
        MenuItem c = new MenuItem("C");
        cm.getItems().addAll(a,b,c);
        circle.setOnMouseClicked(new EventHandler<MouseEvent>() {
    
            @Override
            public void handle(MouseEvent t) {
                if(t.getButton().toString().equals("SECONDARY"))
               cm.show(circle,t.getScreenX(),t.getSceneY());
            }
        });