JavaFX图表上的Swing上下文菜单

时间:2018-06-20 15:06:38

标签: java swing javafx charts java-7

尽管图表对话框使用JavaFX,但我主要是在摆动应用程序。 (确切地说,是{{1}中的Chart中的GridPane。)

首先,JFXPanel没有实现使用JFX Chart的{​​{1}}方法。我已经看到了通过在图表的右键单击上附加处理程序的解决方法,但是当菜单失去焦点时,菜单不会从GUI中删除,而是一直存在,直到用户1)触发它再次打开或2)单击a。 setContextMenu

ContextMenu

也就是说,我宁愿使用Swing MenuItem。如何将其绑定到chart.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() { @Override public void handle(MouseEvent t) { if (t.getButton() == MouseButton.SECONDARY) { contextMenu.show(chart, t.getScreenX(), t.getScreenY()); } } }); 并保持自然行为?

谢谢!

1 个答案:

答案 0 :(得分:1)

我确定无法使用JPopupMenu

ContextMenu已添加到JLabel

Label contextMenuLabel = new Label();
grid.add(contextMenuLabel, 0, 0); // Add to the same grid after adding the chart
contextMenuLabel.setPrefSize(width, height);
contextMenuLabel.setMinSize(width, height);
contextMenuLabel.setMaxSize(width, height);

ContextMenu contextMenu = new ContextMenu();

contextMenuLabel.setContextMenu(contextMenu);