我无法在JavaFX Menu类中找到允许我检索父MenuBar API。 任何提示,包括内部API的使用都是非常受欢迎的。 (JavaFX 8)

背景:通常任何JavaFX Node都可以使用方法getParent()其父级提供。 但由于MenuMenuItem不从Node继承,因此无法使用此可能性。 MenuItem类(以及Menu类)有两个类似的方法:

  • getParentPopup()获取父ContentMenu
  • getParentMenu()获取父Menu

所以我会期待像getParentMenuBar()这样的东西,但它并不存在。

编辑:我刚刚找到此API扩展的jira功能请求: https//bugs.openjdk.java.net/browse/JDK-8091154

有人为此找到了解决方法吗?

#1楼 票数:1

我问你为什么需要从Menu返回到MenuBar的访问权限,你试图解决什么问题?

一种可能的方法是使用Node上的任意属性映射来存储从Menu到MenuBar的引用,如此示例所示。

public class MenuToMenuBar extends Application {
    public static void main(String args[]) {
        launch(args);
    }

    @Override
    public void start(Stage stage) throws Exception {
        MenuBar bar = new MenuBar();
        stage.setScene(new Scene(bar));
        Menu menu = new Menu("Foo");

        MenuItem menuItem = new MenuItem("Baz");
        menu.getItems().add(menuItem);
        bar.getMenus().add(menu);

        // put a reference back to MenuBar in each Menu
        for (Menu each : bar.getMenus()) {
            each.getProperties().put(MenuBar.class.getCanonicalName(), bar);
        }

        menuItem.setOnAction((e) -> {
            // retrieve the MenuBar reference later...
            System.out.println(menuItem.getParentMenu().getProperties().get(MenuBar.class.getCanonicalName()));
        });
        stage.show();
    }
}

  ask by christoph.keimel translate from so

未解决问题?本站智能推荐:

1回复

用于JavaFX的Javadoc(不是JavaFXapi!);从源头上?从项目场景图?

JavaFX附带的API是针对JavaFX语言的,我有一个要学习的理由,但是没有更多的理由要学习。 我知道Project Scenegraph(scenegraph.dev.java.net,AKA Scenario)是同一个库。 我只是从Project Scenegraph生成javado
1回复

Javafx:将ImageView绑定到Anchorpane或VBox并通过调整场景大小来缩放ImageView

我想通过调整场景(窗口)大小来缩放 ImageView,但我必须保持纵横比。 是否可以通过调整窗口大小直接做到这一点? 谢谢您的帮助。 问题是,ImageView 不会通过调整窗口大小来缩放。 我的另一个问题是:如何将图像绑定到背景,以便在调整窗口大小时它始终适合窗口并调整大小? 谢谢您的帮助这是我
1回复

如何在不影响动画性能的情况下执行JavaFX场景图更新

我正在寻找有关在动画运行时更新 JavaFX 场景图的建议。 我拥有的是 3D 场景中的自定义细节级别节点,它在后台线程中加载和创建 MeshView。 很好,它在不影响 JavaFX 应用程序线程的情况下工作。 但问题是,当我更新这样的场景图中的节点(我实际上只是替换了 Group 节点中的一个子
2回复

JavaFX使节点部分鼠标透明

如果我有两个相互堆叠并重叠的节点,如何使顶部的节点成为 mouseTransparent(以便底部节点可以对 MouseEvents 做出反应)而且顶部的节点也对一些 MouseEvents 做出反应,例如 onMouseEntered? 例如,考虑 StackPane 内的两个(假设为矩形)窗格,
3回复

什么使JavaFx1.2场景图刷新?

我的第一个问题=)。 我正在编写一个带有用JavaFx编写的用户界面的视频游戏。 行为是正确的,但我遇到了性能问题。 我正在试图弄清楚如何排队正在减慢应用程序的刷新排队。 我有一个相对复杂的场景图,代表一个六角形的地图。 它会缩放,以便在地图中可以有100或1000个六边形。 随着
1回复

转换层次结构(父级对子级的建模转换问题)、OpenGL、LWJGL3

我目前正在 OpenGL 中构建一个场景图,我试图在他们的孩子身上模拟父变换,但它似乎不起作用。 :( 我的主要问题是孩子的旋转没有正确跟随父母的旋转。 子对象围绕父对象(中心)旋转,这是它应该做的,但是它围绕父对象旋转的速度随着父对象旋转的增加而增加,并且一旦父对象旋转一整圈(当父对象的旋转回到
2回复

JavaFX:AnimationTimer和MenuBar之间的交互

我正在开发一种软​​件,它从相机中获取图像并在JavaFX ImageView实时显示。 我有一个获取最后一个图像的线程(在本例中是一个BufferedImage ),以及一个将它分配给ImageView的AnimationTimer 。 我继续使用AnimationTimer的原因似乎是每
1回复

JavaFX-如何创建一个精简的MenuBar?

我在BorderPane的顶部放置了一个MenuBar其中带有“文件”菜单和“关闭” MenuItem : 如何使它看起来像我使用的大多数软件的MenuBar一样薄,类似于下图? 我认为它必须足够简单,但是作为一个初学者,我真的不能用谷歌搜索它。 我不确定如何命名问题(“ ja