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