JavaFX 2 自定义弹出窗格

2023-12-02

JavaFX 2 颜色选择器有一个按钮,可以弹出颜色选择器窗格,如下所示:

JavaFX 2 colour picker

我想做类似的事情,因为我希望在单击按钮时弹出一个自定义窗格,并在单击其他内容时消失(在我的例子中是一些图像缩略图)。实现这一目标的最佳方法是什么?我应该使用 ContextMenu 并以某种方式向 MenuItem 添加一个窗格,还是还有其他我应该看的东西?


使用当前的 JavaFX 2.2 API 很难做好。

这里有一些选项。


使用在其 MenuItem 中设置了图形的 MenuButton

这是采取的方法带有弹出窗口的按钮如下所示的可执行文件示例代码.

wizpopup


使用弹出控件

看看 ColorPicker 是如何做到这一点的code.

颜色选择器扩展弹出控件。您可以这样做,但构建您自己的 PopupControl 所需的所有 API 当前并非都是公开的。因此,对于 JavaFX 2.2,您必须依赖内部 com.sun 类,这些类已被弃用,并将被 JDK8 中的公共 javafx.scene.control 类取代。


使用上下文菜单

因此,我认为您的“使用 ContextMenu 并向 MenuItem 添加窗格”的想法可能是目前最好的方法。您应该能够通过使用来做到这一点自定义菜单项 or 设置图形在正常情况下MenuItem. The ContextMenu很好相对定位逻辑. A ContextMenu也可以由菜单按钮.


使用自定义对话框

为此,请在相对于节点的位置显示透明舞台。

我暂时链接了一些示例代码来帮助您入门here。 示例代码执行相对于主窗口侧面的定位,但您可以更新它以执行相对于给定节点侧面的定位(如 ContextMenu 的 show 方法)。


使用玻璃板

为此,请创建一个 StackPane 作为主窗口的根。将主要内容窗格放置为 StackPane 中的第一个节点,然后创建一个 Group 作为 stackpane 中的第二个节点,以便它将分层在主要内容的顶部。通常,顶部组不包含任何内容,但是当您想要显示弹出窗口时,请将其放置在顶部组中并将其转换到相对于主要内容中适当节点的位置。

你可以看看锚节点是如何这个演示用于了解这如何适应您的环境。


JavaFX8 有相关更新吗?

与 Java 8 的相关性没有太大差异,一般来说,这些选项是基于 Java 2.2 功能的这篇文章中概述的。 Java 8 确实添加了Dialog and Alert功能,但这些更针对的是使用带有边框、标题和按钮的对话框,而不是问题中所需的功能类型。也许您可以从 Dialog 类开始并对其进行大量自定义以获得接近所需的内容,但您最好从空白阶段或 PopupControl 开始。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaFX 2 自定义弹出窗格 的相关文章

  • 如何从舞台组件中仅删除“最小化”按钮以及如何在 JavaFX 中自定义组件?

    如何从舞台组件中仅删除 最小化 按钮以及如何在 JavaFX 中自定义它们 我正在使用 Netbeans 7 1 2 并创建了一个简单的 JavaFX 应用程序 我有一个名为 PrimaryStage 的阶段对象 我怎样才能实现它 不幸的是
  • JavaFX TabPane 禁用按键切换选项卡

    我有一个Tab有一些内容 ScrollBar和别的 The ScrollBar has event handler for keys left and right 但如果我按下这些按钮Tabs被切换 因为TabPane还有一个密钥处理程序
  • 如何在 JavaFX 中设置滚动窗格的单位增量?

    The 滚动条 http docs oracle com javafx 2 api javafx scene control ScrollBar htmlJavaFX 中的类包含一个用于设置单位增量的属性 这就是我所追求的 但是我找不到如何
  • asp.net/jQuery:使用 jQuery 将数据发布到弹出窗口 [IE]

    我正在尝试在 asp net 应用程序中使用 jQuery 将数据发布到弹出窗口 如果弹出窗口打开 我会收到三个错误 第一个错误是 Errror the value of the property is null or undefined
  • JavaFx GridPane布局如何为行中的元素设置边距?

    我正在使用 GridPane 布局在我的应用程序中定位事物 我想知道如何为 row 中的元素设置边距 GridPane setConstraints chip5 1 1 1 1 HPos RIGHT VPos TOP I want to s
  • JavaFX 拖放无法正常工作

    我在网格窗格中使用两个 Imageview 进行拖放测试 我的问题是 当我完成拖放并将目标图像视图移动到源图像视图并释放鼠标时 我错误地最终显示了 img2 中的图片 而不是 img1 中的图片 当我注释掉 setOnDragExited
  • 如何在JavaFX中有效地滚动和缩放大图像?

    作为图像处理应用程序的一部分 我需要创建具有缩放 滚动和矢量叠加功能的简单查看器模块 图像相当大 40000x20000 这使得 ImageView 上的操作变慢 缓冲等 在 JavaFX 中处理巨大图像时 改善用户体验的最佳选项是什么 我
  • JavaFX 中具有自定义内容的 ListView

    How i can make custom ListView with JavaFx for my app I need HBox with image and 2 Labels for each line listView 您可以通过查看
  • JavaFX 抛出 ArrayIndexOutOfBoundsException

    我正在尝试使用 JavaFX 标签和组 通过鼠标拖动将它们移动到屏幕上 新节点从某些线程添加到动画组中 然而 有时我会突然看到以下异常 我假设 当某些节点重叠时 但我不知道问题是什么 因为我的代码不涉及 有谁知道这个异常和根本原因 使用JD
  • 在网站的一次导航中仅显示一次弹出窗口

    我有一个使用 Laravel 创建的网站 我希望用户第一次访问我的网站时能够看到弹出窗口 我的意思是第一次 用户访问我网站上的任何页面 这是第一次 访问网站上的一些链接页面 现在 这些页面访问不是第一次 在同一选项卡中打开 facebook
  • 导致回发到与弹出窗口不同的页面

    我有一个主页和一个详细信息页面 详细信息页面是从主页调用的 JavaScript 弹出窗口 当单击详细信息页面上的 保存 按钮时 我希望主页 刷新 是否有一种方法可以调用主页的回发 同时还可以从详细信息页面维护保存回发 Edit 使用win
  • jQuery 覆盖默认验证错误消息显示(Css)弹出/工具提示等

    我试图用 div 而不是标签来覆盖默认的错误消息标签 我看过这个帖子 https stackoverflow com questions 309574 jquery validation how to not display errors
  • 创建一个控件似乎打破了 JFX8 上的透明阶段

    上面的程序应该创建一个带有一些文本的透明舞台 但舞台看起来不透明 public class Test extends Application Override public void start Stage primaryStage new
  • 解析节点的 CSS 属性

    也许我的 google fu 今天让我失望了 但我还没有找到一种方法来解析节点的任意属性以获得样式属性 例如 我希望能够询问节点 fx fill 的值是多少 如果有 一个简单的应用程序示例 我想为图表构建自定义图例 为此 我必须向渲染节点询
  • 使用 HashMap 填充 TableView,该 HashMap 更改时将更新

    我已经关注这个帖子了 将 hashmap 与 tableview 绑定 JavaFX https stackoverflow com questions 18618653 binding hashmap with tableview jav
  • JavaFX 2.0 - 为 FXML 中的自定义组件创建操作处理程序

    我想在我的新组件中添加自定义操作 这个怎么做 示例代码 成分 public class MyCustomComponent extends Region public MyCustomComponent super this setOnMo
  • 在 JavaFX 中如何在屏幕上移动精灵?

    我是 JavaFX 新手 正在尝试编写一个游戏 其中动画 2D 角色在屏幕上行走 例如原始的 塞尔达传说 游戏 我在 Swing 中完成了此操作 方法是创建自己的 Sprite 类并重写 Swing 中的 PaintComponent 方法
  • JavaFX:使用 PathTransition 作为绘图笔的动画

    示例代码 node Rectangle rect new Rectangle 0 0 20 20 path Text text TextBuilder create text J a v a F X R o c k s font new F
  • Javafx ListView刷新

    有没有办法在 Javafx 2 1 中强制刷新 ListView 而无需重新加载列表并更改所选值 可观察列表由字符串组成 因此更改它们的值是不可行的 Try ObservableList
  • 如何裁剪 JavaFX 图像并调整其大小?

    我正在尝试在 JavaFX 画布上显示非常大的图像 单张图像的分辨率为11980x8365 每个图像都有一个相应的世界文件 我可以使用它来正确定位图像 我的画布尺寸是 800x600 有时我需要在画布上写下整个图像 有时只是其中的一部分 这

随机推荐

  • Cosmos 数据库吞吐量

    是否有任何选项可以以编程方式检索 Cosmos DB SQL API 吞吐量 我使用下面的代码来获取数据库列表 DocumentClient client new DocumentClient ClientURL ClientKey var
  • 无效的回发或回调参数

    我有一个 ASP net 应用程序 在开发环境中运行良好 但在生产环境中单击执行回发的链接时会引发以下异常 有任何想法吗 回发或回调参数无效 使用启用事件验证 在配置或 在 页 出于安全目的 这 功能验证参数 回发或回调事件发起 从服务器控
  • Docusign - 用于重新激活已关闭用户的 API

    我已经能够从管理控制台重新激活已关闭的 Docusign 用户 但是是否有 REST API 可以实现此目的 用户文档似乎没有提到这一点 我知道有一个关于这个主题的类似问题 但尚未找到解决方案 我再次发布这个问题 希望它能引起 Docusi
  • 续集不包括所有子项(如果有任何一个匹配)

    我有三个背靠背的关联表 这意味着 item level 1 有许多 item level 2 而 item level 2 有许多 item level 3 我使用搜索查询来查找名称包含搜索文本的任何父母或孩子 这意味着如果我输入abc 那
  • 为什么 FtpWebRequest 返回此现有目录的空流?

    我不确定为什么会得到这个结果 我在 Linux 服务器上运行它 这是我的小型网站的共享网络托管帐户 文件分组如下 and the Another Dir里面有一个文件 所以我试图检索的内容badname里面的目录1somelongdir12
  • javascript 如何将变量添加到字符串

    我正在使用 javascript 和 jquery 我有一个像这样的字符串 var apiUrlAnswer https api stackexchange com 2 0 answers ids order desc sort activ
  • PhantomJS 没有一致地持久保存 localStorage

    我正在尝试制作一个孤立的测试用例来试验 PhantomJSlocalStorage行为 但在我的测试用例中 localStorage 似乎不是持久的 这是 PhantomJS 脚本 var page require webpage crea
  • Ember : addObject/pushObject 不是一个函数

    我最近从 ember 1 x 迁移到 2 6 我无法像以前那样使用 addObject pushObject Ember 2 6 2 jQuery 2 2 4 import Ember from ember export default E
  • 开发服务器返回响应错误代码:404 React Native

    我正在尝试在 cmd 中运行这样的反应本机应用程序 cd C Users User Desktop js react native run android 如果您仍然遇到同样的问题 只需终止端口 8081 上的所有现有进程并再次运行代码即可
  • Symfony2 功能测试 $crawler 不工作

    我发现 Symfony2 中的功能测试总是尝试将页面请求为 http localhost 我的环境是使用虚拟主机设置的 因此我的应用程序位于 http symfony dev 经过一些测试我发现如果我运行 var dump client g
  • Javascript 重定向并将参数传递给重定向页面

    我有一个包含两个按钮的主页 每个按钮都应该重定向到同一页面 但是 您重定向到的页面应该根据您按下的按钮执行不同的操作 如何将用户重定向到该新页面并根据您单击的按钮传递参数 使用 JQuery 等工具包 跨浏览器事件处理要简单得多 HTML
  • 将日期分解为数字

    我很抱歉打扰这个问题 但找不到解决方案 我有一个带有列名称日期的 data frame str df date Factor w 360 levels 1982 11 30 1982 12 31 1 4 7 10 13 16 19 22 2
  • 在 PHP 中使用heredoc语法时遇到问题[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心
  • NativeScript 在 Mac 操作系统上找不到 Android SDK

    我已经安装了 NativeScript 并且尝试这样做tns platform add android但它不起作用 ANDROID HOME 路径是正确的 我已经安装了 SDK API 22 和最新的 和工具 25 0 2 当我跑步时tns
  • Magento - 如何在结帐过程中向订单添加发票费用

    如何使用我的付款模块将发票费用添加到订单中 我想这应该在结帐过程中通过我的付款方式模型完成 也许我应该创建一个项目 产品并将其添加到购物车 报价 订单对象中 但我不知道如何做这些事情 请帮忙 尽管有可能 但这并不适合胆怯的人 以下是向总计区
  • 更改 HREF 后 IE 忘记了 A-Tag 的主机名

    我设置了href 的属性 a 在项目中动态标记 在其他时候 我检查 a 的 DOM 属性称为hostname 以确定它是否是内部链接 基本上 这就是发生的情况 a href my first link MyLink a div div JS
  • Android Studio 3.6.1 与 Gradle 插件版本 3.6.1 和 Gradle 版本 5.6.4 无法正常工作

    我的应用程序运行良好 我刚刚更新了安卓工作室3 6 1 更新 Android Studio 后 我收到此对话框 我将更新 Gradle 插件的版本 如下所示 更新后 我的应用程序崩溃并出现以下错误 java lang NoClassDefF
  • .htaccess 重写规则不会使用 unicode 字符

    我正在使用以下 ModRewrite 来使我的网址看起来更干净 RewriteEngine On RewriteRule a zA Z0 9 index php key 1 它允许使用字母和数字就好 但当我尝试使用 时 它会产生 400 错
  • if 和 elseif 有什么区别?

    这应该是一个简单的问题 我有一个简单的 if else 语句 与此有区别吗
  • JavaFX 2 自定义弹出窗格

    JavaFX 2 颜色选择器有一个按钮 可以弹出颜色选择器窗格 如下所示 我想做类似的事情 因为我希望在单击按钮时弹出一个自定义窗格 并在单击其他内容时消失 在我的例子中是一些图像缩略图 实现这一目标的最佳方法是什么 我应该使用 Conte