当前位置: 首页 > 知识库问答 >
问题:

以编程方式开始拖动JSlider拇指

广乐邦
2023-03-14

我已经创建了一个JSlider。我希望能够点击滑块上的任何地方,让拇指移动到鼠标的位置,并开始拖动(通常你必须点击拇指)。通过使用以下方法添加一个鼠标侦听器,我能够让拇指移动到鼠标位置:

public void mousePressed(MouseEvent e) {
    slider.setValue(((BasicSliderUI) slider.getUI()).valueForXPosition(e.getX()));
}

问题是,一旦我按下鼠标按钮,然后移动它,拇指就会留在原地。是否有某种方法以编程方式启动拖动?

共有1个答案

蓬化
2023-03-14

我能够通过调用SliderUI的TrackListener的mousePressed事件来启动拖动。我创建了一个类,它扩展了BasicSliderUI,并具有一个带有事件的鼠标侦听器:

public void mousePressed(MouseEvent e) {
    slider.setValue(valueForXPosition(e.getX()));
    trackListener.mousePressed(e);
}
 类似资料:
  • 我设置了滑块的最小值和最大值(例如从1..100开始)。但我有另一个控件,它限制滑块的值范围,比如说从30..60。现在用户应该无法将滑块拇指移动到30以下和60以上,但最小值和最大值仍然应该是1和100。

  • 问题内容: 请看下面的代码 数据库连接器 数据库UI 在这种情况下,我需要通过右键单击 _数据库节点 启动服务器_来手动启动derby(我正在使用NetBeans)。这是一个嵌入式数据库,这意味着我要将其从一台计算机转移到另一台计算机,并愿意通过双击jar文件来开始,而不是在每台计算机上都配置数据库并手动启动它们。但是,如果我没有手动启动数据库,则会收到错误消息 java.sql.SQLNonTr

  • 请看一下下面的代码 数据库连接器。JAVA 用户界面 在这种情况下,我需要通过右键单击数据库节点手动启动derby(我使用的是NetBeans) JAVAsql。SQLNonTransientConnectionException:java。网ConnectException:连接到端口1527上的服务器本地主机时出错,消息“连接被拒绝:连接”。 无论是在NetBeans内部,如果我没有手动启动它

  • 我正在尝试为具有特定扩展名的文件在“打开”菜单中添加eclipse编辑器。我在org.eclipse.ui.editors扩展点中使用launcher实现了这一点,在launcher中我使用了“open editor”方法,它需要传递编辑器ID。有没有什么方法可以让我们以编程方式打开一个编辑器,而不需要传递编辑器ID呢?我们可以通过传递实现编辑器的类的实例以编程方式打开编辑器吗?..

  • 我想通过编程(从关联菜单)打开某个视图,我该怎么做? 我可以使用e3兼容层显示如下视图: e4的方法是什么?

  • 问题内容: 如果我们有以下代码片段: 在终端中,输入请求如下所示 如何以编程方式模拟用户的输入。 问题答案: 这是一个示例,该示例如何使用函数来操纵的输入缓冲区,以从检索假输入 看到它正常工作 另一个选择(与JoachimPileborg在其评论恕我直言中所说的更接近)是将阅读代码放入单独的函数中,例如 这使您可以进行不同的测试和生产要求,例如