0

webEngine.load 呼び出しを行った後、別のページを webEngine にロードする方法がわかりません。ブラウザの Web ビューを初期化した後、プログラムの実行がウィンドウが閉じるのを待つことに気付きました.20 秒ごとにチェックを行う必要があるため、Web ビューを初期化する別のスレッドを作成しました。

public class MainBrowser extends Application {
    private Scene scene;
    private static String json;
    private static Browser browser;

    @Override 
    public void start(Stage stage) {
        // create the scene
        stage.setTitle("Web View");

        Rectangle2D screenSize = Screen.getPrimary().getVisualBounds();
        double width = screenSize.getWidth();
        double height = screenSize.getHeight();

        //System.out.println("Defining a new scene...");
        browser = new Browser(json);
        scene = new Scene(browser,width,height, Color.web("#666970"));
        stage.setScene(scene);
        //scene.getStylesheets().add("webviewsample/BrowserToolbar.css");
        stage.setFullScreen(true);
        stage.show();

    }

    public static void main(String j){
        json = j;
        launch();
    }

    public static void reload(String j){
        json = j;
        browser.reloadPage(j);
    }
}

これは私がブラウザと呼んでいたものです

private static void openBrowserWindow(String json)
{
    browserRunnable = new BrowserRunnable(json);
    browserThread = new Thread(browserRunnable);
    browserThread.start();

}

private static void reloadBrowserWindow(String json)
{
    browserRunnable.reloadBrowser(json);        
}

そして、この関数を使用して、別のスレッドでブラウザーを呼び出してから、別のページをロードしようとします。当然うまくいきませんが、webEngine に別のページをロードさせる方法が本当にわかりません。

public class BrowserRunnable implements Runnable {
    static MainBrowser browser;
    static String json;

    public void reloadBrowser(String json)
    {
        this.json = json;
        MainBrowser.reload(json);
    }

    public BrowserRunnable(String json)
    {
        this.json = json;
    }

    @Override
    public void run() {
        MainBrowser.main(json);
    }
}

ブラウザのリロード機能:

public void reloadPage(String json)
{
    File openpage = new File(Config.PAGE_LOCAL_URL);
    String param = "?json=" + json;
    System.out.println(param);
    webEngine.load(openpage.toURI().toString() + param);
}

たくさんのコードがあることは知っていますが、それは全体を表示するためのものであり、webEngine のページを更新する方法を知る必要があるだけです

4

0 に答える 0