mousemoved 事件中的 Javafx 滑块值

2023-12-06

我正在制作一个媒体播放器,并尝试在将鼠标悬停在滑块上时获取光标位置处的播放滑块值。为了尝试做到这一点,我使用了以下内容:

    timeSlider.addEventFilter(MouseEvent.MOUSE_MOVED, event -> System.out.println("hovering"));

每当鼠标在滑块上改变位置时,它就会打印“悬停”。谁能告诉我如何获取当前光标位置滑块的值?我只能弄清楚如何获取拇指位置的值。

提前致谢。


如果您在滑块下显示轴,这里有一点(也许不止一点)的技巧。它依赖于通过其 css 类查找轴,将鼠标坐标转换为相对于轴的坐标,然后使用 APIValueAxis转换为值:

import javafx.application.Application;
import javafx.geometry.Point2D;
import javafx.scene.Scene;
import javafx.scene.chart.NumberAxis;
import javafx.scene.control.Label;
import javafx.scene.control.Slider;
import javafx.scene.layout.StackPane;
import javafx.stage.Popup;
import javafx.stage.Stage;

public class TooltipOnSlider extends Application {

    @Override
    public void start(Stage primaryStage) {
        Slider slider = new Slider(5, 25, 15);
        slider.setShowTickMarks(true);
        slider.setShowTickLabels(true);
        slider.setMajorTickUnit(5);

        Label label = new Label();
        Popup popup = new Popup();
        popup.getContent().add(label);

        double offset = 10 ;

        slider.setOnMouseMoved(e -> {
            NumberAxis axis = (NumberAxis) slider.lookup(".axis");
            Point2D locationInAxis = axis.sceneToLocal(e.getSceneX(), e.getSceneY());
            double mouseX = locationInAxis.getX() ;
            double value = axis.getValueForDisplay(mouseX).doubleValue() ;
            if (value >= slider.getMin() && value <= slider.getMax()) {
                label.setText(String.format("Value: %.1f", value));
            } else {
                label.setText("Value: ---");
            }
            popup.setAnchorX(e.getScreenX());
            popup.setAnchorY(e.getScreenY() + offset);
        });

        slider.setOnMouseEntered(e -> popup.show(slider, e.getScreenX(), e.getScreenY() + offset));
        slider.setOnMouseExited(e -> popup.hide());

        StackPane root = new StackPane(slider);
        primaryStage.setScene(new Scene(root, 350, 80));
        primaryStage.show();

    }

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

mousemoved 事件中的 Javafx 滑块值 的相关文章

  • Java 中类似 HashMap 的可排序数据结构?

    Java 中是否有某种类似于 HashMap 的数据结构 可以按键或值排序 在 PHP 中 您可以拥有可排序的关联数组 Java中有这样的东西吗 HashMaps 几乎按照定义是未排序的 一个好的哈希函数会产生看似随机的密钥分布 如果你想使
  • 在 JTable 中使用自定义 TablecellRenderer

    我是 Java 新手 我创建了一个JTable 就是这样addRow当我尝试向表中添加一行时 该方法有效 private void addTableRow String type String name String rank String
  • 如何在 Java 中验证从 Azure AD B2C 生成的 JWT 令牌?

    我正在寻找 Java 代码示例来验证 Azure AD B2C 令牌 我们可以使用哪些依赖项 所有 JWT 令牌的 JWT 令牌验证步骤或代码是否相同还是会有所不同 我们的项目中没有使用 Spring Security 有大量的图书馆her
  • 我们可以在java中放弃已经签名的jar吗?

    I ve a jar文件具有旧签名 并希望使用新签名重新签名 是否可以 如果可能的话 怎么做 如果签名不是您拥有的 您需要先解压 jar 像这样 假设是unix 否则翻译成dos jar xvf JarName jar rm rf META
  • 如何修复安装 maven jar 插件依赖项时出现的错误?

    我正在将应用程序制作成 maven 中的 jar 文件 但是 当我从 Maven 中提取 jar 插件存储库并在终端中运行这三个命令时 mvn clean mvn compile mvn package 在 mvn package 中 我收
  • 如何测试 Jersey REST Web 服务?

    我已经编写了一个 Restful Web 服务 并且必须使用 JUnit4 对其进行测试 我已经使用 Jersey Client 编写了一个客户端 但想知道我是否只能使用 junit4 测试我的服务 至少有人可以帮我提供样品吗 我的休息服务
  • 如何将 Cucumber 中的数据表转换为对象列表?

    原标题 Java 中的 Cucumber DataTables 中的标量是什么意思 From 参考 Java 提供了几种标量类型 这些包括原始数字 类型 加上布尔值和字符 每个标量 原始 类型都有一个关联的包装类或 参考类型 阅读javad
  • 从 java 类生成 xsd 的实用程序

    我想为以下类生成 xsd public class Node private String value private List
  • 最终类中的静态函数是否隐式最终?

    我的问题基本上与this https stackoverflow com q 8766476 3882565一 但这是否也适用于static功能 我想了解 编译器是否处理所有static函数在一个final类为final 是否添加final
  • Java 7 中新的 JNLP 缺少项目警告是怎么回事?

    从 Java 6 切换到 Java 7 后 我的 JNLP 仍然工作正常 但它现在抛出一系列如下错误 Missing Application Name manifest attribute for http blah com app jar
  • SQLite 64位整数在jooq中被识别为int

    我有一个与 jOOQ 一起使用的 SQLite 数据库 当我使用 jOOQ 的代码生成工具时 它会按预期构建所有表和记录类 然而 所有的 SQLiteINTEGER列变成java lang Integer生成的代码中的字段 问题是 SQLi
  • 如何在 Java 中读取/转换 InputStream 为字符串?

    如果你有一个java io InputStream对象 您应该如何处理该对象并生成一个String 假设我有一个InputStream包含文本数据 我想将其转换为String 例如我可以将其写入日志文件 最简单的方法是什么InputStre
  • 当对话框打开时如何处理屏幕方向变化?

    我有一个 Android 应用程序 它已经在处理方向的更改 即有一个android configChanges orientation 在清单和onConfigurationChange 活动中的处理程序切换到适当的布局并准备它 我有一个横
  • 使用mapstruct映射不同类型列表的元素

    我们正在映射一个对象 该对象具有一个对象列表 这些对象都实现了父接口 但可能具有不同的实现 但当我们映射列表时 似乎只有来自 ParentClass 的值被映射 而不是来自子类的值 但直接映射子进程就可以了 public class Par
  • 如何在 Spring GCP 中订阅多个 Google PubSub 项目?

    我想在 Spring Boot 应用程序中订阅多个 Google Cloud PubSub 项目 阅读完相关问题后如何使用 Spring Cloud 在一个 Spring Boot 应用程序中连接 配置两个 pubsub gcp 项目 ht
  • java中从视频中提取图像

    我想知道如何使用 JMF 从视频中提取图像 Player player Manager createRealizedPlayer cdi getLocator player start FrameGrabbingControl frameG
  • Android 中的自定义相机应用程序问题 - 旋转 270、拉伸捕获视图且未获取所有功能

    我从代码中得到了帮助https github com josnidhin Android Camera Example https github com josnidhin Android Camera Example 但面临一些问题 例如
  • 如何为用户的活动设置计时器?

    如果用户在 5 小时内停止工作 我需要执行特定的方法 假设用户已登录 但他在 5 小时内没有向数据库的特定表添加任何记录 任何时候用户将记录添加到指定的表中 该特定用户的计时器都应该重置 否则它将继续运行 如果达到 5 小时 应用程序应显示
  • 无法取消 GWT 中的重复计时器

    我正在尝试在 GWT 中安排一个重复计时器 它将每一毫秒运行一次 轮询某个事件 如果发现满意 则执行某些操作并取消计时器 我尝试这样做 final Timer t new Timer public void run if condition
  • 仅当用户开始输入时清除 JavaFX TextField 中的提示文本

    默认行为是当字段获得焦点时 字段中的提示文本将被删除 那是标记在场上的时候 是否可以配置文本字段 以便仅在用户开始输入时删除提示文本 否则 我需要在每个文本字段旁边 上方添加一个标签 以描述其中的值 我知道它有点旧 但我自己也需要它 这仍然

随机推荐

  • 文件 tesseract.exe 不存在

    我已经安装了pytesseract图书馆使用 pip install pytesseract 当我尝试使用image to text方法 它给了我一个 FileNotFoundError WinError 2 系统找不到指定的文件 我用谷歌
  • 在 Impala SQL 中编写 While 循环?

    在 Impala 中编写 while 循环的语法是什么 甚至可以写一个循环吗 我似乎无法声明变量 并且它不识别 while 作为关键字 因帕拉不支持WHILE在它的语法中循环 参考 Impala 保留字
  • React js onClick 无法将值传递给方法

    我想读取 onClick 事件值属性 但是当我点击它时 我在控制台上看到类似这样的内容 SyntheticMouseEvent dispatchConfig Object dispatchMarker 1 1 0 2 0 0 1 nativ
  • 新的 PyYAML 版本会破坏大多数自定义 python 对象 - RepresenterError

    大约5小时前 版本4 1 0被释放了 它破坏了我的单元测试 这是一个干净的 MVCE 显示了这一点 3 12版本 gt gt gt import numpy as np gt gt gt import yaml gt gt gt x np
  • 选择 cakephp 3 查询中除一个字段之外的所有字段

    我只想选择 cakephp 3 中除一个字段之外的所有字段 Ex this gt select fname lname mname email password status created modified 在这里 我想选择除创建和修改之
  • 迭代对象数组 Angular 2

    我有一个从 json 文件的服务文件中接收到的对象数组 当我在组件中订阅它并尝试迭代它时 出现以下错误 EXCEPTION Error in app dashboard features fleet fleetControlPanel fl
  • 在 python、numpy 中创建一个全零的 4d 矩阵

    我正在尝试使用以下代码在 python 中创建一个 4 维矩阵 import numpy as np rho np zeros 2 2 2 2 但我收到以下错误 rho np zeros 2 2 2 2 TypeError function
  • 如何从一个输入标签添加/上传/选择多个文件?

    我来这里是为了知道如何从一个多个输入标签添加 上传 选择多个文件 但再次选择后所有先前的选择都被删除或覆盖 我想要的是 选择多个文件 将进行预览 确定完成 用户可以从预览中删除选择 将更多文件 图像添加到当前选择 您可以隐藏输入 type
  • ORDER BY 和WITH(行锁、UPDLOCK、READPAST)

    我需要使用一些 SQL 表来设置队列系统 如所描述的那样here 也就是说 因为我需要按不同的标准过滤队列项目 所以在我正在使用的存储过程中 BEGIN TRANSACTION CREATE TABLE Temp ID INT SOMEFI
  • PhoneGap - 存储图像,然后获取其 base64 编码数据

    我正在使用 PhoneGap Camera API 拍照并使用destinationType FILE URI 这部分正在发挥作用 随后我可以采用提供的路径并将其设置为 HTML 图像的 src 然后图像就会出现 稍后在代码中 我想抓取图像
  • 使用 GCloud KMS 生成加密密钥以访问私有存储库作为依赖项时出现错误

    我正在尝试使用此将加密的 ssh 密钥添加到 google KMS文档用于访问私有存储库作为 Google App Engine Node JS 项目 的依赖项 我已成功生成 Cloud KMS KeyRing 和 CryptoKey 但在
  • 如何处理CEdit在父窗体中的鼠标点击?

    我是 MFC 的新手 来自 C 和 Java 并且正在解决问题 考虑一个包含三个文本框的对话框 我已将 CEdit 子类化为 CMyEdit 并且三个文本框连接到对话框类中的 CMyEdit 变量 我想让对话框类 知道 何时用鼠标左键单击了
  • 转换以删除重复项并复制其余部分

    我希望输出 xml 根据属性 f 针对元素 c 进行分组 这是我的输入 xml 和 xslt 我希望该组仅出现一次 其他节点应按原样复制到输出 我尝试过的 xslt 复制了整个输入 xml 因此 如果有两个或多个具有 c 元素且 f 属性值
  • 缩放级别的任何更改都会导致我的所有标记重新出现在我的 Google 地图上

    缩放级别的任何更改都会导致自上次页面加载以来随时出现在地图上的所有标记出现在地图上 无论缩放级别更改是由于我的代码中的 setZoom 调用还是因为我操作缩放滑块 情况都是如此 我有一个地图控件小部件 其中带有按钮来添加对应于不同类别的标记
  • 通过简单的训练进行手写识别

    我一直在阅读 并尝试 之前答案中建议的 OCR 程序 但我仍然没有对我的问题给出明确的答案 我需要识别手写英文文本 文本将是多行 但每行只有一两个字长 该文本有时来自不同的人 我可以要求那个人提供一个培训文件 例如 包含字母和 0 9 数字
  • iOS:如何测量经过的时间,独立于时钟和时区的变化?

    为了测量我的应用程序运行时的持续时间 以及我的应用程序在后台空闲时经过的时间 我需要一个参考时钟 该参考时钟不会因用户更改其日历时钟的时间 日期而改变 我不能依赖 NSDate 因为当我的应用程序在后台运行时 用户可以更改它 不 拦截与此类
  • NSDate 延迟日期更改

    这可能是一个简单的解决方案 但有谁知道如何将 NSDate 更改延迟到午夜之后 任何见解都会非常有帮助 谢谢 Edit 我目前正在通过这种方式获取日期并显示基于当天的位置数据 但是 就像 NSDate 在逻辑上应该起作用一样 它会在午夜切换
  • 固定表单的位置

    我正在启动一个 winform 应用程序 NET 3 5 C 其中应用程序的主窗体从特定的指定位置启动 我为此在构造函数中调用以下代码 private void SetFormPosition this StartPosition Form
  • PHP Carbon,获取日期范围内的所有日期?

    如何在 PHP 中获取两个日期之间的所有日期 更喜欢使用 Carbon 来处理日期 from Carbon now to Carbon createFromDate 2017 5 21 我想获得这两个日期之间的所有日期 但是如何呢 只能使用
  • mousemoved 事件中的 Javafx 滑块值

    我正在制作一个媒体播放器 并尝试在将鼠标悬停在滑块上时获取光标位置处的播放滑块值 为了尝试做到这一点 我使用了以下内容 timeSlider addEventFilter MouseEvent MOUSE MOVED event gt Sy