私は ScalaFX で GUI を書きました。言及すること:
- 「実際の」アプリケーション自体にはすでに main メソッドがあり、JFXApp を拡張するときに取得するメソッドではなく、そのメソッドのみを使用してアプリケーションを起動する必要があります。したがって、JFXApp のメイン メソッドへの呼び出しは、外部から手動で行われます。
- JFXAppにデータ構造を渡すことができるはずなので、setterを追加しました
起動手順全体は次のようになります。
def main(args: Array[String]) {
...
...
JFXGui.setData(data)
JFXGui.main(Array())
}
問題:
- JFX オブジェクトのメイン メソッドが呼び出されない限り、データ オブジェクトの内容を描画することはできないので、
setData
実際には単純なセッター メソッドです。JFXGui
が呼び出された後、できるだけ早くデータを描画する必要があるという考えですJFXGui.main
。しかし:どうすればこれを の中で実現できJFXGui
ますか?「オンレディ」メソッドのようなものはありますか? - 上記のコードでは、セッターが描画をトリガーできるように、メイン メソッドの呼び出しの後にセッターへの呼び出しを配置しようとしました。私が心に留めていなかったのは
JFXGui.main
、それが永遠にブロックされているということです。したがって、セッターへの呼び出しは到達不能なコードです。
どうすればこれを修正できますか? どんな助けでも大歓迎です、ありがとう。
編集:
JFXGui
私のScalaFX UIの名前です:
object JFXGui extends JFXApp {
private var data: Data = _
def setData(data: Data) {
this.data = data;
}
// tons of ScalaFX related things which visualize the data object
// ...
}