0
我Scala中的一個簡單的JavaFX程序在那裏我有我寫的形狀在一個窗格。添加形狀在JavaFX
class SimpleWindow extends Application {
val pane = new BorderPane
val subPane = new Pane
var coord = (0, 0)
var primeStage: Stage = _
var x = 600
var y = 600
override def start(primaryStage: Stage) {
primeStage = primaryStage
pane.setCenter(subPane)
val line = new Line(25, 25, 50, 50)
subPane.getChildren.add(line)
val x = 600
val y = 600
val scene = new Scene(pane, x, y)
// Finalize and show the stage
primaryStage.setScene(scene)
primaryStage.setTitle("The Click Me App")
primaryStage.show()
}
def moveTo(x: Int, y: Int): Unit = {
SimpleWindow.this.coord = (x, y)
}
def lineTo(x: Int, y: Int): Unit = {
val line = new Line(coord._1, coord._2, x, y)
SimpleWindow.this.subPane.getChildren.add(line)
SimpleWindow.this.coord = (x, y)
}
}
現在simplewindow類將是一個單獨的線程,我希望能夠使用lineTo方法從外部類創建一個新行。這是所有失敗的地方,當我使用其他類的lineTo(在一個單獨的線程上)時,gui不會更新,我相信我需要在窗格上添加某種偵聽器,以便在添加節點時進行更新,但是我不知道怎麼。
任何想法如何解決這個問題?
我沒有包裹我的lineTo方法在Platform.runLater中,但它根本沒有幫助。但我會試着用更多的東西來看看,謝謝。 – Superovan
@Superovan,'runLater'應該有所幫助。如果沒有,我們需要一個可重複的例子,它會導致異常(或錯誤的行爲)。 – SergGr