Prise en main de la Scala + JavaFX application de bureau de développement
Est-il un guide ou procédure pas à pas de la construction d'un Scala + JavaFX application de bureau?
Je vais avoir du mal à trouver une bonne source et je suis en utilisant IntelliJ IDÉE que l'IDE.
Même la plus simpliste de bureau bonjour tout le monde échantillons aiderait beaucoup, car j'ai peu d'idée par où commencer.
Mise à jour: c'est Ce que j'ai maintenant:
import javafx.application.Application
import javafx.scene.Scene
import javafx.scene.layout.StackPane
import javafx.stage.Stage
import javafx.scene.control.Label
class Test extends Application {
override def start(primaryStage: Stage) {
primaryStage.setTitle("Sup!")
val root = new StackPane
root.getChildren.add(new Label("Hello world!"))
primaryStage.setScene(new Scene(root, 300, 300))
primaryStage.show()
}
}
object Test {
def main(args: Array[String]) {
val t = new Test
t.start(new Stage)
}
}
L'exécution de ce que je reçois:
Exception in thread "main" java.lang.IllegalStateException: Pas sur FX
thread d'application; currentThread = principal
Comment puis-je obtenir pour afficher le bonjour à tout le monde de la fenêtre avec l'étiquette?
- Avez-vous réussi à écrit quoi que ce soit dans JavaFX avant de l'utiliser juste en Java? IDE qui avez-vous utilisé?
- Non, je viens de trouver sur JavaFX, et j'ai commencé à apprendre Scala il y a un mois ou ainsi. Je suis l'aide de l'Ide, IDE.
- Je voudrais commencer en suivant les exemples sur l'Oracle site web. oracle.com/technetwork/java/javafx/documentation/index.html assurez-vous que vous pouvez l'obtenir en cours d'exécution avec Java, puis peut-être essayer de traduire les exemples en Scala. Vous pourriez également être intéressé par ScalaFX, qui est un projet en cours pour produire idiomatiques Scala liaisons pour la bibliothèque. code.google.com/p/scalafx
- J'ai mis à jour ma question avec le code. Avez-vous une idée de comment continuer à partir de là où j'ai quitté?
Vous devez vous connecter pour publier un commentaire.
Il y a quelques petites choses à savoir lors de l'écriture de Scala en fonction des applications JavaFX.
Tout d'abord, voici un exemple hello world app:
Cours d'exécution, vous devriez obtenir:
Voici un officiel de l'exemple hello world en Java: http://docs.oracle.com/javafx/2/get_started/hello_world.htm
Les principales différences sont:
def main()
qui lance l'application elle-même.Application.launch(classOf[Test], args: _*)
.Si vous essayez juste de lancer l'application directement avec
Application.launch(args : _*)
, vous obtiendrez ce message d'erreur:Pour en savoir plus sur JavaFX, il suffit de lire la documentation officielle: http://docs.oracle.com/javafx/index.html
Vous pouvez utiliser de cette façon.
J'ai été en mesure de résoudre ce problème en scala_swing beaucoup plus satisfaisante parce que vous pouvez instancier une instance avec des paramètres, puis appel principal sur elle pour commencer à Balancer plus tard.
Cette solution vous permet de passer des paramètres à obtenir dans le FX application sur le coût d'utilisation de static var et d'éventuelles autres questions. L'une étant que ce n'est sûrement pas le multi-thread-safe.