使用FXML将上下文菜单添加到形状

时间:2013-11-17 17:45:08

标签: java javafx-2 fxml

我正在尝试使用JavaFX 2 FXML向圆形元素添加上下文菜单。 在代码中添加菜单效果很好,在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>

抛出的异常是:

  
    

引起:javafx.fxml.LoadException:无效的属性。

  

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

对于Circle来说,在设计时无法在FXMl中添加上下文菜单,因为它没有在圆的属性中定义,所以你必须务实。

试试这个-----

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