我想自动化一个在线游戏。它在仅基于终端的情况下工作。但是我想添加一个JavaFXUI,现在我不知道把Thread放在哪里。等待直到达到某个LocalDateTime。JavaFX在哪里等待它的事件(比如按钮点击,…),我可以覆盖该方法吗?或者有没有一种方法可以为javaFX创建自定义LocalDateTime事件和侦听器?
如果在initialize()中添加一个Thread.wait,则整个场景直到到达某个LocalDateTime时才会显示。
如果您希望在某个预定时刻触发事件,但希望应用程序的用户界面对用户的操作保持响应,那么您需要一个后台线程。你几乎不应该让你的应用程序的GUI线程处于Hibernate状态,因为这会使你的应用程序没有响应,看起来像是崩溃了。为了好玩,试着用错误的方法:将线程放到GUI代码中,然后调用sleep
查看它是如何临时冻结你的应用程序的。
了解并发。从Oracle教程开始,并努力最终完成Goetz等人的《圣经Java实践中的并发》的年度阅读。
Executors框架是为了使线程更容易而构建的。具体来说,您将需要ScheduledExecutorService
类。这已经在堆栈溢出上讨论过很多次了。搜索以了解更多信息。
并了解如何从后台线程正确地与GUI线程交互。
切勿使用LocalDateTime
跟踪某个时刻,如类文档中所述。暂时使用Instant
、OffsetDateTime
或ZonedDateTime
。对于以小时-分-秒为单位的时间跨度,请使用持续时间
。Duration
类提供了toMinutes
、toSeconds
等方法,其结果可以作为延迟提供给ScheduledExecutorService
。关于堆栈溢出,所有这些类都被多次讨论过。搜索以了解更多信息。
我尝试了几乎所有的方法,但是鼠标拖动事件没有触发,就像这里解释的那样: https://openjfx.io/javadoc/11/javafx.graphics/javafx/scene/input/MouseDragEvent.html 下面是一个简单的示例,您可以尝试一下(我在JavaFX11.0.2中使用Java11): 我想通过在或中获取的引用。有许多嵌套窗格等,因为我想保持原来的项目布
所以我有一个JavaFX应用程序,它包含一个按钮,应该可以打开DirectoryChooser onclick。当我触发它一次时,它会做它应该做的,非常好。我一关闭DirectoryChooser对话框,按钮就什么都不做了。我在网上搜索一些“事件重置”或类似的内容,因为我认为该事件可能仍处于“活动”状态,因此不再触发,但没有任何结果: 不知道这是完全错误的方法,还是我错过了一些重要的东西。我希望你
我的JavaFx FXML应用程序有问题。 当我在表单上选中复选框时,我想根据单击的复选框执行一个方法。是否有任何方法可以将复选框的名称传递给该方法,以便对其执行一些有条件的工作? 我有两个复选框,只能选择一个。当我单击其中一个时,应取消选择另一个,反之亦然。显然,下面的代码将无法工作,因此我希望传递被单击对象的名称。 任何帮助都将不胜感激,非常感谢。
问题内容: 我的整个项目都使用(Bluebird)Promises,但是有一个使用EventEmitter的特定库。 我想要实现以下目标: 我在Promises链中读了EventEmitter的答案。这给了我一种执行’connect’事件的回调的方法。这是我到目前为止所到之处 现在如何进一步链接“ eventB”? 问题答案: 我假设您想为每个事件做不同的事情。即使由的动作触发,您也可以将其视为另
使用mui.trigger()方法可以动态触发特定DOM元素上的事件。 .trigger( element , event , data ) element Type: Element 触发事件的DOM元素 event Type: String 事件名字,例如:'tap'、'swipeleft' data Type: Object 需要传递给事件的业务参数 示例 自动触发按钮的点击事件: var
一点背景: 我对也做了同样的操作--创建了一个将添加到源列表的方法,并且每当更新源列表时,它将使用JavaFX线程上的UI等价类更新目标列表: 因此,现在如果我有更新的并且其项属性更新不是在JavaFX线程上,我就可以轻松地获得一个在JavaFX中显示的列表: 所以现在的问题是: 我的预期是,当显示在中时,只要值发生更改,它就会更新,但预期的行为只持续几秒钟,之后ListView停止更新,这是因为