我正在从事JavaFX项目。我需要在JavaFXTextField
上执行一些任务。
例如,我想打印的TextField
的"on point"事件
System.out.println("Textfield on focus");
在“焦点不集中”事件中,它应该打印出来
System.out.println("Textfield out focus");
您需要将ChangeListener附加到要监视的文本字段的FocusProperty。
在JavaFX中,您可以将通知事件(更改或无效侦听器)附加到对象可能拥有的任何JavaFX属性,只要该属性满足JavaFXbean的最低定义。
如果您的事件处理程序将执行其他操作,例如修改取消或默认按钮设置:javafx2——设置defaultButton属性:互斥,请参阅本文?
以下是将更改侦听器附加到文本框的一些代码:
txtDx.focusedProperty().addListener(m_txtDxListener);
Listener对象已存储在实例字段中,因此可以与addListener()和RemovelListener()一起使用。对于短命的TextField,可以使用匿名内部类指定侦听器对象。
这是我为焦点听众写的私人类:
private class FocusPropertyChangeListener implements ChangeListener<Boolean> {
FocusPropertyChangeListener() { System.out.println("New FPCL instance"); }
@Override
public void changed(ObservableValue<? extends Boolean> ov,
Boolean oldb, Boolean newb) {
System.out.println("Focus change triggered");
if (ancEncEditor.isVisible() && !ancEncEditor.isDisabled()) {
boolean b = (newb != null && newb.booleanValue() == true);
System.out.println("txtDx focus change event triggered: DxAdd = " + b);
if (b) { btnDxAdd.setDefaultButton(true); }
else { btnWindowCommit.setDefaultButton(true); }
btnWindowCommit.setCancelButton(true);
btnDxAdd.setDefaultButton(b);
}
}
}
您可以使用Node
的焦点属性
来附加一个ChangeListener
。
扩展Brendan的答案:从JavaFX8(Java8),lambda表达式结合三元运算符可以使其非常紧凑:
textField.focusedProperty().addListener((obs, oldVal, newVal) ->
System.out.println(newVal ? "Focused" : "Unfocused"));
我认为看到一个将ChangeListener指定为匿名内部类的示例可能会有所帮助,就像Scottb提到的那样。
TextField yourTextField = new TextField();
yourTextField.focusedProperty().addListener(new ChangeListener<Boolean>()
{
@Override
public void changed(ObservableValue<? extends Boolean> arg0, Boolean oldPropertyValue, Boolean newPropertyValue)
{
if (newPropertyValue)
{
System.out.println("Textfield on focus");
}
else
{
System.out.println("Textfield out focus");
}
}
});
希望这个回答有帮助!
问题内容: 我正在从事JavaFX项目。我需要在JavaFX上执行一些任务。 例如,对于我要打印的“焦点”事件 并在“无焦点”事件上打印 问题答案: 我认为看一个将ChangeListener指定为匿名内部类(例如scottb)的示例可能会有所帮助。 希望这个答案对您有所帮助!
我正在尝试创建一个应用程序,用于查询cat图像的站点,如果JSON ID是唯一的,则将其保存到android设备,然后从设备以幻灯片格式显示它们。尽管如此,我的AsyncTask似乎并没有实际执行。调试器确认已建立网络连接,并且不会向我反馈任何错误,所以我不知道代码出了什么问题。希望有人能帮忙!代码如下:
问题内容: 我有三个连接的线程,即第二个线程在第一个死后执行。 这是我的代码: 我将如何使用而不是三个线程对象来实现此功能? 问题答案: 如果您想要/需要的是一个接一个地执行一组作业,但要在与主应用程序线程不同的单个线程中执行,请使用。
我有代码: 年级4.5.1对此警告为 但是link没有给我任何可以替换它的提示,因为我不能仅仅设置任务依赖项,比如dependsOn或FinalizdBy--它不是从其他任务调用的,而是从构建的末尾调用的。
我只是把我的脚趾头浸入RxJava中,所以请温柔点:)到今天为止,我对异步任务还可以,但它变得越来越复杂,我想我终于偶然发现了一个需求,实际上我很难用简单的异步任务来满足这个需求。这是我的用例: 1)我有一个方法(我们称之为),它需要在会话中运行一次。如果以前运行过,它会返回缓存的响应。否则,它会执行一个网络调用,然后根据结果执行另一个。这两个网络任务都使用OkHttp运行,并且是同步的。方法本身
在上下文中没有Executor bean的情况下,Spring Boot会自动配置一个具有合理默认值的ThreadPoolTaskExecutor,这些默认值可以自动与异步任务执行(@EnableAsync)和Spring MVC异步请求处理相关联。 如果您在上下文中定义了自定义Executor,则常规任务执行(即@EnableAsync)将透明地使用它,但不会配置Spring MVC支持,因为它