你好,我試圖讓 javafx8 在 Windows 10 java 8 eclipse 最新版本上運行 Witn processing 3?但是我收到這個錯誤java.lang.IllegalStateException:?This?operation?is?permitted?on?the?event?thread?only;?currentThread?=?main
????at?com.sun.glass.ui.Application.checkEventThread(Application.java:443)
????at?com.sun.glass.ui.Window.getScreen(Window.java:403)
????at?com.sun.javafx.tk.quantum.WindowStage.setBounds(WindowStage.java:289)
????at?javafx.stage.Window$TKBoundsConfigurator.apply(Window.java:1292)
????at?javafx.stage.Window.applyBounds(Window.java:1182)
????at?javafx.stage.Window.centerOnScreen(Window.java:283)
????at?processing.javafx.PSurfaceFX.placeWindow(PSurfaceFX.java:574)
????at?processing.core.PApplet.runSketch(PApplet.java:10849)
????at?processing.core.PApplet.main(PApplet.java:10562)
????at?processing.core.PApplet.main(PApplet.java:10544)
????at?processingfxnew.SirpenskiTriangle.main(SirpenskiTriangle.java:13)并且處理草圖沒有出現在 javafx windows 選項卡中我不知道如何解決這個問題
1 回答

茅侃侃
TA貢獻1842條經驗 獲得超21個贊
JavaFX 有一個“事件線程”,負責更新 GUI、響應按鈕點擊等(即任何 GUI 操作)。
如果您嘗試在 JavaFX 事件線程以外的線程上以任何方式更新 GUI ,您將收到此錯誤。要修復它:
從事件線程自然調用的方法(首選)調用您的代碼 -
button.setOnAction(event -> {updateGui()})
例如,將其附加到一個。將其包裝在對的調用中
Platform.runLater()
- 即Platform.runLater(() -> updateGui());
這會將您的調用發布到事件線程。然而,要小心這一點,因為它經常被濫用來使混亂的代碼工作。
添加回答
舉報
0/150
提交
取消