gpt4 book ai didi

java - JavaFX 图表上的 Swing 上下文菜单

转载 作者:行者123 更新时间:2023-12-02 11:06:07 25 4
gpt4 key购买 nike

我正在开发一个主要在 swing 中的应用程序,尽管图表对话框使用 JavaFX。 (准确地说,是 JFXPanelGridPane 中的 Chart。)

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

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

也就是说,我更愿意使用 Swing JPopupMenu 来代替。如何将其绑定(bind)到我的 Chart 并保持自然行为?

谢谢!

最佳答案

我确定不可能使用 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);

关于java - JavaFX 图表上的 Swing 上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50951436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com