したがって、これはアプリケーションを実行するコードです。
public class TestJavaFX extends Application {
private Scene scene;
@Override
public void start(Stage stage) throws UnsupportedEncodingException, IOException {
// create the scene
stage.setMinWidth(550);
stage.setMinHeight(400);
stage.setTitle("Dashboard Loading...");
WebView browser = new WebView();
// sets temp title of scene & creates WebView, a JavaFX panel
// Programmatic capabilities (aka DOM/loading pages) are accessed
// through the WebEngine (browser.getEngine())
browser.getEngine().getLoadWorker().stateProperty().addListener(new ChangeListener<State>() {
public void changed(ObservableValue ov, State oldState, State newState) {
if (newState == State.SUCCEEDED) {
JSObject win = (JSObject) browser.getEngine().executeScript("window");
win.setMember("app", new JavaApp());
HTMLDocument doc = (HTMLDocument) browser.getEngine().getDocument();
stage.setTitle(doc.getTitle());
}
}
});
// adds listener to add app object (from java) to the javascript
// allowing javascript access to java functions
// and also changes the window title to the HTML title
browser.getEngine().load(getClass().getResource("html/index.htm").toString());
// loads the page, resource is configured to run in a jar setting as
// well as in the IDE
StackPane layout = new StackPane();
layout.getChildren().add(browser);
// creates a layout for the scene and adds the webview
scene = new Scene(layout, 900, 650);
new JavaApp().runBatch(5050505);
// initiates the scene (AKA the inner part of the window) and adds a
// layout
// numbers can be changed; they are the size of the window (W,H)
stage.setScene(scene);
stage.show();
// adds scene to stage (window part of window)
// packs stage and makes stage visible
}
public static void main(String[] args) {
launch(args);
}
JavaApp クラスのコードは次のとおりです。
public class JavaApp{
public void runBatch(int num) /*throws IOException*/ {
System.out.println(num);
}
}
HTML ファイルは、onclick 属性 ="app.runBatch(number)" を持つボタンによって runBatch を呼び出します。number は 0、1、2 などです。
問題は次のとおりです。理由はわかりませんが、runBatch の定義に引数 (int num など) がある場合は常に、関数が Web ページに存在しないかのように見え、HTML ボタンをクリックしても実行されません。 . 引数を削除するとすぐに、正常に実行されます。これはバグですか、それとも私が修正できるものですか?