Java 错误 Not on FX Application Thread
本篇文章介绍了 Java 中的 Not on FX application thread 错误。
Java 中的 Not on FX application thread
当我们尝试从不是 FX 线程且应从 FX 线程调用的线程调用方法时,会出现错误 Not on FX application thread
。 对于以前版本的 JavaFX 来说这不是问题。
JavaFX 8 的新实现会发生此错误。在 JavaFX 应用程序中的不同线程中更改用户界面时,会发生此错误。
下面是一个将引发 Not on FX 应用程序线程错误的示例。
Thread DemoThreadShow = new Thread(new Runnable() {
@Override
public void run() {
try {
newthread.setStyle("visibility: true");
Thread.sleep(10000);
Thread.interrupted();
} catch (Exception e) {
thread.setText("" + Integer.valueOf(thread.getText()) + 5);
newthread.setStyle("visibility: false");
}
}
});
DemoThreadShow.start();
上面的代码创建一个线程并向该线程应用一些方法。 这些方法来自 JavaFX 应用程序。
应用 setText 方法时,会抛出错误 Exception in thread "Thread-5" java.lang.IllegalStateException: Not on FX application thread; currentThread = Thread-5
。
可以对代码进行以下更改来解决此问题。
-
要在处理 FX 应用程序和线程时更改 UI,请使用以下方法。
Platform.runLater(() -> { //GUI STUFF });
Platform.runLater(new Runnable() { @Override public void run() { //GUI STUFF } });
-
我们还可以使用Service和Task而不是Thread。 Service 比 Thread 有更多的功能。
更改任务内的 UI 永远不会引发 Not on FX 应用程序线程错误。 以下是为此目的使用服务和任务的代码示例。
Service New_Service = new Service() { @Override protected Task createTask() { return new Task() { @Override protected Object call() throws Exception { Platform.runLater(() -> { //GUI stuff here }); return null; } }; } }; New_Service.start();
相关文章
Java 错误 Java.Net.SocketException: Network Is Unreachable
发布时间:2023/07/16 浏览次数:963 分类:Java
-
今天我们就来讨论一下Java编程时出现java.net.SocketException: Network is unreachable异常的可能原因及解决方法。Java中出现java.net.SocketException: Network is unreachable的可能原因及解决方案
Java 错误 Java.Net.ConnectException: Connection Timed Out
发布时间:2023/07/16 浏览次数:235 分类:Java
-
本篇文章将重点介绍如何使用此包进行基本的网络调用以及可能面临和解决的错误。在 Java 中使用 java.net 进行网络调用 进行网络调用是 Java 开发人员每天面临的最重要的事情之一。
Java 中错误 Attempt to Invoke Virtual Method on a Null Object Reference
发布时间:2023/07/16 浏览次数:948 分类:Java
-
本篇文章介绍如何解决 Java 中的 Attempt to invoke virtual method on a null object reference 错误。Java 中 Attempt to invoke virtual method on a null object reference 错误
Java 错误 Java.Security.InvalidKeyException: Illegal Key Size
发布时间:2023/07/15 浏览次数:644 分类:Java
-
本篇文章介绍包含 java.security.InvalidKeyException: Illegal key size 的 Java 代码。 然后,我们将了解其可能的原因。最后,它通过消除指定的错误来引导我们找到解决方案。
Java 错误 Java.SQL.SQLException: Access Denied for User Root@Localhost
发布时间:2023/07/15 浏览次数:165 分类:Java
-
本篇文章介绍如何解决 Java 中的 java.sql.SQLException: Access Denied for user 'root'@'localhost' 错误。修复 Java 中的 java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
Java 错误 Gateway Process Exited Before Sending Its Port Number
发布时间:2023/07/15 浏览次数:885 分类:Java
-
本篇文章介绍了 Java 中 Java gateway process exited before sending the driver its port number 错误 Java gateway process exited before sending the driver its port number 错误
修复 Java 中 Java.Net.BindException: Address Already in Use: Bind 错误
发布时间:2023/07/15 浏览次数:250 分类:Java
-
本篇文章介绍了 Java 中的 java.net.BindException:Address already in use: Bind 错误。修复Java 中的 java.net.BindException:Address already in use: Bind
Java 中错误 Unsupported Major Minor Version
发布时间:2023/07/14 浏览次数:133 分类:Java
-
出现 Unsupported Major.minor version 错误或 Java.lang.UnsupportedClassVersionError 的原因是运行时 JDK 较低,编译时 JDK 较高。 本篇文章介绍如何解决Java中不支持的major.minor版本。
Java 错误 Error:Java: Javactask: Source Release 1.8 Requires Target Release 1.8
发布时间:2023/07/14 浏览次数:274 分类:Java
-
在使用IntelliJ for Java时,无法编译Java程序是一个常见的问题。 本教程提供了此错误的解决方案。Error:Java: Javactask: Source Release 1.8 Requires Target Release 1.8 错误