JavaFX コントローラー クラスが動作しない
提供されたコードは、ログとして TextArea とインターフェースします。目的は、必要に応じて TextArea のコンテンツを別のクラスから更新することです。これには、Initializable を拡張するコントローラー クラスを作成する必要があります。ただし、コントローラーの実装は正しく機能していません。
解決策
コードには根本的な問題があります。Application クラスがコントローラーとして使用されているということです。この方法は推奨されません。次の理由からです。
さらに、マルチスレッドを実装する前に UI の基本機能を完了することをお勧めします。
改訂されたコード
コントローラー、Web インポーター、およびテキスト ロギング サンプルの個別のクラスを使用した修正コードは次のとおりです。
Root.fxml
<code class="xml">... fx:controller="textlogger.ImportController" ...</code>
ImportController.java
<code class="java">... private WebImporter importer; ...</code>
WebImporter.java
<code class="java">... private final TextArea textArea; ...</code>
TextLoggingSample.java (エントリ ポイント)
<code class="java">... Parent root = loader.load( getClass().getResourceAsStream( "Root.fxml" ) ); ...</code>
結論
コントローラー クラスを分離し、マルチスレッドの適切なアプローチを使用することにより、アプリケーションは TextArea をオブジェクトから正常に更新できるようになりました。別クラス。
以上がJavaFX コントローラー クラスが動作しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。