javafx-打开我在另一个Web视图中单击的链接

时间:2018-08-24 02:58:13

标签: java javafx

我对Javafx的按钮和样式的(合理的)挫败感使我不得不诉诸于我可以实际样式化的东西:HTML / CSS。

我正在做的是在应用程序中加载两个网站。第一个是我的应用程序使用的网站,第二个将是控制应用程序的选项卡菜单。

Screenshot of the application.

这显然很有效,但是当我单击“ Click Me!”时链接,它将在第二个Web视图(底部的一个)中打开页面。能否做到这一点,以便当我单击第二个WebView中的链接时,它在第一个Webview中打开?

这是我的代码:

Main.java

*import java snip*
public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws IOException{
        primaryStage.setWidth(210);
        primaryStage.setHeight(380);
        VBox vbox = new VBox(0);
        StackPane root = new StackPane();
        ScrollPane scrollPane = new ScrollPane();
        Scene scene = new Scene(root);
        final WebView browser = new WebView();
        final WebView nav = new WebView();
        URI uri = URI.create("http://www.example.com");
        Map<String, List<String>> headers = new LinkedHashMap<String, List<String>>();
        headers.put("Set-Cookie", Arrays.asList("name=value"));
        java.net.CookieHandler.getDefault().put(uri, headers);
        final WebEngine webEngine = browser.getEngine();
        final WebEngine navEngine = nav.getEngine();
        webEngine.load("https://www.example.com/");
        webEngine.setUserStyleSheetLocation(getClass().getResource("style.css").toString());
        webEngine.setUserAgent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36");
        navEngine.load(getClass().getResource("nav.html").toString());
        navEngine.setUserStyleSheetLocation(getClass().getResource("style.css").toString());
        HBox hbButtons = new HBox();
        hbButtons .getChildren().add(nav);
        hbButtons.prefHeightProperty().bind(primaryStage.heightProperty().multiply(1));
        vbox.getChildren().addAll(browser, hbButtons);
        root.getChildren().addAll(vbox);
        scene.setRoot(root);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    public static void main(String[] args) {
        launch(args);
    }
}

nav.html:

<html>
    <body>
        <a href="http://www.example.com">Click me!</a>
    </body>
</html>

0 个答案:

没有答案