我正在尝试使用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:无效的属性。
有什么想法吗?
答案 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());
}
});