JavaFXでのWeb画面表示をやろうと思います。
・参考にするのはORACLEのJavaドキュメント(日本語)です、このページはWebViewクラスの使い方が記載してありました。
・もう1つ使うものがあります。BorderPaneクラスです。
このクラスの使い方はこちらのページにありました。
WebView & BorderPane
実行することは以下のような内容らしいです。
- ローカルおよびリモートURLからのHTMLコンテンツのレンダリング
- Web履歴の取得
- JavaScriptコマンドの実行
- JavaScriptからJavaFXへのアップコールの実行
- Webポップアップ・ウィンドウの管理
- 埋込みブラウザへの効果の適用
基本的な使い方は下のようなコードでやるようです。
WebView browser = new WebView(); WebEngine webEngine = browser.getEngine(); webEngine.load("http://mySite.com");
URLでYoutubeへ。。。
それではシンプルに実装してみます。以前やったプロパティファイルの読み込みと画面サイズの取得はそれぞれ以下のメソッドに実装しています。
・initWindowInfo(画面サイズの取得)
・loadProperties(プロパティファイルの読み込み)
ちなみにコードはGithubにアップしています。
上にあるWebViewの使い方を真似してURLを以下のものを指定して表示します。
https://www.youtube.com/watch?v=6qhJsvpd0ds
ちなみに、動画は下のようなものです。
しかし、実行結果は下のような見た目です。
コードは以下に。。。
ちなみにコードはGithubにアップしています。
public class Main extends Application { /** プロパティファイル */ private Properties prop; /** プロパティファイルのキー・セット */ private SetkeySet; /** 最大ウィンドウサイズ(幅) */ private double windowWidth; /** 最大ウィンドウサイズ(高さ) */ private int windowHeight; @Override public void start(Stage primaryStage) { try { // レイアウト(土台)になるペインを作成 BorderPane root = new BorderPane(); // WebView(ブラウザ)の作成 WebView browser = new WebView(); WebEngine engine = browser.getEngine(); engine.load("https://www.youtube.com/watch?v=6qhJsvpd0ds"); root.setCenter(browser); // 画面を表示する土台(シーン)を作成 Scene scene = new Scene(root,this.windowWidth,this.windowHeight); // JavaFX用のCSSを読み込む scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); primaryStage.setScene(scene); primaryStage.show(); } catch(Exception e) { e.printStackTrace(); } } public static void main(String[] args) { launch(args); } /** コンストラクタ */ public Main() { windowWidth = 0; windowHeight = 0; // プロパティファイルの読み込み prop = new Properties(); loadProperties(); // ウィンドウ情報の取得(縦横の幅) initWindowInfo(); } ・ ・ ・
問題
表示したいのは動画のみでページ全体ではない
これをなんとかするのに頭を一捻りする必要があります。。。
頭から煙が出てきたのでそろそろと失礼します。
でわでわ。。。