sách gpt4 ai đã đi

java - 来自另一个线程的最小化 javafx 阶段

In lại 作者:行者123 更新时间:2023-12-02 01:37:55 31 4
mua khóa gpt4 Nike

我有 2 个线程正在运行,一个正在监听 soket 等待命令,另一个启动 javafx 应用程序

public class GraphicInterface extends Application implements Runnable {

private static Stage primaryStage;


public static void min(boolean bool) {
getPrimaryStage().setIconified(bool);
}

@Ghi đè
public void start(Stage stage) {
GraphicInterface.setPrimaryStage(stage);
Platform.setImplicitExit(false);
this.primaryStage = stage;
sceneParent = FXMLLoader.load(getClass().getResource("...url..."));
Scene scene = new Scene(sceneParent);
primaryStage.setScene(scene);
getPrimaryStage().sizeToScene();
getPrimaryStage().show();
}


@Ghi đè
công khai void run() {
launch();
}

public static Stage getPrimaryStage() {
return primaryStage;
}

public static void setPrimaryStage(Stage primaryStage) {
GraphicInterface.primaryStage = primaryStage;
}

}

问题是当我想从另一个线程最小化应用程序调用时

  GraphicInterface.min(true);

我收到错误

Exception in thread "OTHER THREAD" java.lang.IllegalStateException: This operation is permitted on the event thread only; currentThread = OTHER THREAD

我怎样才能实现这个目标?

làm mới:

解决这个问题的方法是不要将 GraphicInterface.min(true) 放在另一个线程中,而是编写

            Platform.runLater(() -> {
GraphicInterface.min();
});

1 Câu trả lời

您是否尝试过使用以下方法在 JavaFX 应用程序线程中运行它:

Platform.runLater(() -> GraphicInterface.min(true));

GUI 中的更改只能在 JavaFX 应用程序线程中进行。

关于java - 来自另一个线程的最小化 javafx 阶段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54945652/

31 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com