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

JavaFx 从节点调用事件处理程序

陶博涉
2023-03-14

我正在尝试在javaFx中为特殊需要定制一个快捷方式系统。

这种特殊需求使得不可能使用KeyCombinaison(只限制一个键修饰符是不可接受的)。

我已经做了我适当的KeyCompin联络员系统,现在我想从节点调用一个处理程序(我在控制器之外)。但是我找不到任何优雅的解决方案来执行这个。

有一个按钮声明:

<ToggleButton fx:id="selective1Button"
    text="Sélectif 1"
    onMousePressed="#handleSelective1ButtonPressAction"
    onMouseReleased="#handleSelective1ButtonReleaseAction"/>

在我想从我的快捷方式代码调用控制器的操作之后。

public class Shortcut() {

    public void test() {
        ToggleButton button = (ToggleButton) scene.lookup("#selective1Button");
        // How to call #handleSelective1ButtonPressAction from here ? 
    }
}

和标准控制器。

public class MyController {

    // ....
    @FXML
    private ToggleButton selective1Button;

    @FXML
    public void handleSelective1ButtonPressAction() {
        selective1Button.setSelected(true);
    }
}

我可以做一些工作,例如使用java。机器人和模拟一些点击,但这不是很漂亮。

他们还有别的办法吗?

谢谢

共有1个答案

白驰
2023-03-14

我的问题是我想调用鼠标事件。这可以存档使用机器人类:机器人的使用示例

但是,可以使用标准操作并通过调用方法fire()将它们与按钮链接:

public void test() {
        ToggleButton button = (ToggleButton) scene.lookup("#selective1Button");
        button.fire();
    }

正如jewelsea所说,使用mousePressed和mouseRelease不是很标准。

 类似资料:
  • 我想在JavaFX中制作一个程序,其中包含一个按钮,单击该按钮时,将创建一个圆并将其添加到形状的ArrayList中。以下是我的代码: 我的问题是-如何从内部句柄方法访问“circle1”?在JavaScript中,我们使用e.currentTarget。 我无法声明“Circle1”最终版本,因为我需要在之后更改它。

  • 我正在构建一个Java应用程序。这个应用程序是一个典型的“油漆”应用程序,你可以选择一种颜色,并在画布上绘制。除了...我将有一个圆圈数组分布在画布的顶部。我希望这些圆立即改变颜色,如果,当用户正在绘制和鼠标得到圆的X(10)个像素(其中X是绘制的线的宽度除以2)。 这是我的密码。我有一张画布是一组的一部分。我还创建了一个圆圈节点,并将其作为组的一部分。我想我需要以某种方式创建一个鼠标事件,当用户

  • 问题内容: 我在JavaFX中有一个舞台,可以通过多种方式关闭该舞台,方法是单击红色(X)或通过一个调用 无论舞台如何关闭,我都希望在舞台关闭之前(或之后)执行操作。 如果我使用以下代码: 然后当我单击(X)时调用处理程序,但当我调用 不同之处在于,他希望在整个应用程序关闭时调用处理程序,因此可以覆盖的方法。但是,我并没有关闭整个应用程序,只是一个阶段。并且没有重写的方法。 谢谢你的帮助。 问题答

  • 每个人 都。我一直在寻找这个问题,但我在这里没有找到它,所以我想它真的很简单。 我正在用JavaFX创建一个非常简单的应用程序,只需一个按钮。现在我想处理它的事件(如按下或释放),但当我在互联网上看到示例时,它们都使用匿名类(每个事件都有一个不同的类),这在我看来让代码变得肮脏。这就是为什么我想将事件处理程序放在一个单独的类中,并将它们添加到按钮中。 问题是我不知道我是否必须为每个事件创建一个不同

  • 我需要从OracleIdtyManager中的自定义后处理事件处理程序调用外部REST API? 如果有人有想法,请在这里发布。

  • 我在JavaFX中有一个阶段,可以通过多种方式关闭,通过单击红色(X)或通过调用的按钮 无论舞台如何关闭,我都想在舞台关闭之前(或关闭时)执行一个动作。 如果我使用以下代码: 然后,当我单击(X)时调用处理程序,但当我调用<code>myStage.close()</code>时不会调用 这与这个问题讨论的问题相同(有一个关键区别):JavaFX:Stage-close-handler 不同之处在