私は新しい javafx アプリケーションを作成しています - 初めて javafx を使用します。次のように、FXML を使用して GUI を作成し、これからステージを作成しています。
public void start(Stage stage) throws Exception { Parent root = FXMLLoader.load(getClass().getResource("Main.fxml")); Scene scene = new Scene(root); stage.setScene(scene); stage.show(); }
FXML には、MainController を指す単一のボタンがあり、クリックすると handleButton メソッドが呼び出されます。
public class MainController は Initializable を実装します {
@FXML private void handleButtonAction(ActionEvent event) { System.out.println("You clicked me!"); }
上記のコードは正常に動作し、コンソールに「期待どおりにクリックされました」と出力されます。しかし、私が欲しいのは、実行する Web リクエストとその他のコードです。
public class MainController は Initializable を実装します {
@FXML private void handleButtonAction(ActionEvent event) { System.out.println("You clicked me!"); HttpClient client = new HttpClient(); }
ボタン ハンドラー内に HTTP クライアント オブジェクトを作成しようとすると、次のエラーが発生します。
run:私をクリック !Glass が -[GlassViewDelegate sendJavaMouseEvent:]:src/com/sun/mat/ui/GlassViewDelegate.m:541 で未解決の Java 例外を検出しましたjavafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1440) com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:69) com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager. java:217) com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:170) com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:38) com.sun.javafx.event .BasicEventDispatcher。
だから私の質問は:
a) なぜこれが起こっているのですか? printlns や変数の割り当てなどの単純なものが正常に機能しているのに、HTTPClient の作成でこのエラーがスローされるのはなぜですか。
b) javafx でボタンのクリックを処理する正しい方法は何ですか - スイングでは、SwingWorker を使用して、GUI から離れてコアアプリケーションの作業を行います。
どんな助けも楽しみにしています!