gpt4 book ai didi

java - 有没有办法控制 JavaFX 8 中的菜单弹出位置?

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

我正在为我的应用程序定制样式。我当前的问题源于这样一个事实,即设计师为菜单栏和菜单项指定了完全不同的样式。我实现了按钮样式,但是菜单弹出窗口现在稍微覆盖了按钮本身(包括按钮标签),这很丑陋。

有没有什么方法可以控制相对于菜单栏按钮的菜单弹出位置?实际定位这些弹出窗口的代码在哪里?我搜索了 JavaFX 源代码,但 javafx.scene.control.Menu 类不处理与上下文菜单相关的任何内容 - 似乎菜单逻辑发生在某个完全不同的地方。

最佳答案

我相信菜单中的弹出窗口是用 ContextMenu 完成的(与右键单击菜单相同)。您还可以使用 CSS 更改位置。您也可以使用 ScenicViewSceneBuilder广泛调试您的 GUI 并找到合适的 CSS 路径(如果您还没有这样做的话)。

可以在这里找到相关的 css 类 How can I style a JavaFX menu and its items in CSS?填充和边距可用于移动上下文菜单。

查看 default CSS style称为摩德纳。菜单内容从第 1166 行开始。

希望这对您有所帮助。

更新:

这是我的测试:enter image description here

事实证明,上下文菜单会在菜单按钮的底部弹出。据我所知,无法通过 CSS 移动实际节点。

这意味着,当它与您重叠时,菜单按钮没有您的菜单栏那么大,如果您将其设置为与您的菜单栏一样大(就像我在图片中所做的那样),它将完美地显示在菜单栏下方。

如您所见,我没有在菜单栏上使用填充,而是在菜单按钮上使用它。这将自动调整菜单栏的大小并使上下文菜单完美地弹出。

我还移除了颜色以向您展示如果移除颜色它是完全透明的。

如您所见: enter image description here

-fx-effect: null; 还删除了默认的阴影效果。如果你想对此进行更广泛的控制,你将需要实现你自己的菜单按钮和你自己的上下文菜单。只有这样,您才能拥有完全的控制权。

关于java - 有没有办法控制 JavaFX 8 中的菜单弹出位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32575046/

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