繁体   English   中英

如何在JavaFX的浏览器上创建按钮?

[英]How to make a Button on a JavaFX's browser?

我正在尝试使用javafx进行“启动”。
这是我的代码:
我不保证您必须阅读所有这些代码,这些代码在这里
我正在尝试放置一个javaFX“播放”按钮(我知道如何制作一个按钮以及如何设置onclick事件,但我不知道在哪里添加它:/)
你有个主意吗? 谢谢。

package fr.whiteplay.main.launcher;

public class Launcher{

    private static WebViewSample launcher;
    private static String[] a;

    public static void main(String[] args){
        launcher = new WebViewSample();
        a = args;
    }

    public static void start(){
        launcher.go(a);
    }
}


package fr.whiteplay.main.launcher;
import javafx.application.Application;
import javafx.geometry.HPos;
import javafx.geometry.VPos;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.layout.Region;
import javafx.scene.paint.Color;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;

public class WebViewSample extends Application{

    private Browser browser;
    private Scene scene;

    public void start(Stage stage){
        // create the scene
        stage.setTitle("WhitePlay");
        browser = new Browser();
        scene = new Scene(browser, 992, 620, Color.web("#000000"));
        stage.setScene(scene);
        stage.show();
    }

    public static void go(String[] args){
        launch(args);
    }
}


package fr.whiteplay.main.launcher;

import javafx.geometry.HPos;
import javafx.geometry.VPos;
import javafx.scene.Node;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.layout.Region;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;

class Browser extends Region{

    final WebView browser = new WebView();
    final WebEngine webEngine = browser.getEngine();

    public Browser(){
        getStyleClass().add("browser");
        webEngine.load("http://www.whiteplay.fr/launcher/index.html");
        getChildren().add(browser);
    }

    private Node createSpacer(){
        Region spacer = new Region();
        HBox.setHgrow(spacer, Priority.ALWAYS);
        return spacer;
    }

    protected void layoutChildren(){
        layoutInArea(browser, 0, 0, getWidth(), getHeight(), 0, HPos.CENTER, VPos.CENTER);
    }
}

场景根目录必须是一个结构化面板,而不是浏览器本身,其中必须包含浏览器,按钮以及其他内容。

最简单的示例是将WebViewSample.start()方法替换为以下内容:

public void start(Stage stage){
    // create the scene
    stage.setTitle("WhitePlay");
    browser = new Browser();
    BorderPane root = new BorderPane();
    root.setCenter(browser);
    Button button = new Button("Play");
    root.setBottom(button);
    button.setOnAction(a -> System.out.println("Play"));
    scene = new Scene(root, 992, 620, Color.web("#000000"));
    stage.setScene(scene);
    stage.show();
}

检查此页面以获取有关各种布局选项以及如何使用它们的更多参考。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM