je un programme simple JavaFX à Scala où j'ai un volet que j'écris des formes dans.Ajoutez des formes lors de l'exécution d'une autre classe dans 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)
}
}
Maintenant la classe SimpleWindow va être sur un thread séparé , et je veux être en mesure de faire une nouvelle ligne à partir d'une classe extérieure en utilisant la méthode lineTo. C'est là que tout échoue, quand j'utilise le lineTo de l'autre classe (sur un thread séparé) le gui ne se met pas à jour, et je crois que j'ai besoin d'un écouteur pour le mettre à jour quand un noeud est ajouté mais Je ne sais pas comment.
Une idée de comment je peux résoudre ce problème?
J'ai enveloppé ma méthode lineTo dans un Platform.runLater mais cela n'a pas aidé du tout. Mais je vais essayer de regarder plus dans une solution en utilisant ça, merci. – Superovan
@Superovan, 'runLater' devrait aider. Si ce n'est pas le cas, nous avons besoin d'un exemple reproductible où il en résulte une exception (ou un comportement incorrect) de toute façon. – SergGr