解决异常
Exception in thread "Thread-4" java.lang.IllegalStateException: Not on FX application thread; currentThread = Thread-4
异常原因:
运行javaFX程序,系统会自动创建一个FX application thread线程,用于更新界面的组件信息,例如ListView的items、Label的text。当我们想运用多线程实现业务,而自己创建的线程又直接导致了界面组件信息的更新时,控制台就会抛出java.lang.IllegalStateException异常。
之所以抛出异常,是因为javaFX程序不允许用户在FX application thread线程外更新界面的组件信息,也就是说,所有的更新界面组件的信息的代码,都应该在在FX application thread线程中执行。
解决办法:
1、用Platform类的runLater方法可以解决该问题
runLater方法的定义如下
public static void runLater(Runnable runnable) {
PlatformImpl.runLater(runnable);
}
2、在主线程中执行会更改javafx组件的代码
Platform.runLater(new Runnable() {
@Override
public void run() {
//更新JavaFX组件的代码
}
});
清空vbox控件的方法
msgVBox.getChildren().clear();
思考服务器端怎么弄好友申请