2012-11-17
WebView表示
Web画面のテストをJavaFXでできるようなのでまず始めにid:skrbさんの JavaFX でブラウザ - JavaFX in the Boxを写経してみました。
環境は、Mac OS X 10.7.4、NetBeans7.2、JavaSE1.7.0_07です。
写経したコードですが、バージョンアップに変更があったので以下の3点を変えています。
1.TextBoxがUI Controlからなくなっていたので変わりにTextFieldを使用
2.WebEngineはWebViewからgetEngineメソッドで取得
3.ページのロード終了時のTaskがWorkerに変わって、イベントも変更
3番目の変更は、JavaFX 2.2を参考にしました。
import javafx.application.Application; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.concurrent.Worker; import javafx.concurrent.Worker.State; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.TextField; import javafx.scene.effect.Reflection; import javafx.scene.layout.BorderPane; import javafx.scene.layout.HBox; import javafx.scene.text.Font; import javafx.scene.web.WebEngine; import javafx.scene.web.WebView; import javafx.stage.Stage; /** * JavaFX */ public class WebViewDemo extends Application { private WebEngine engine; private TextField urlField; // 1.TextBox @Override public void start(Stage stage) { stage.setTitle("WebView Demo"); BorderPane borderPane = new BorderPane(); borderPane.setLayoutX(10); borderPane.setLayoutY(10); Scene scene = new Scene(borderPane); stage.setScene(scene); // ブラウザ WebView view = new WebView(); engine = view.getEngine(); // 2.WebViewからWebEngineを取得 view.setPrefSize(600, 500); borderPane.setCenter(view); // 反射効果を加える Reflection reflection = new Reflection(); reflection.setFraction(0.5); view.setEffect(reflection); // ページのロードが終了した時の処理 Worker<Void> worker = engine.getLoadWorker(); //3.TaskからWorker worker.stateProperty().addListener(new ChangeListener<State>() { @Override public void changed(ObservableValue ov, State oldState, State newState) { if (newState == State.SUCCEEDED) { String url = engine.getLocation(); urlField.setText(url); } } }); // 水平ボックス HBox hbox = new HBox(10); hbox.setPrefHeight(40); hbox.setAlignment(Pos.BASELINE_CENTER); borderPane.setTop(hbox); // テキスト入力 urlField = new TextField(); hbox.getChildren().add(urlField); // ボタン Button button = new Button("Open"); button.setFont(new Font("sanserif", 16)); hbox.getChildren().add(button); button.setOnAction(new EventHandler<ActionEvent>(){ @Override public void handle(ActionEvent event) { loadUrl(); } } ); stage.show(); } // ページのロード private void loadUrl() { String url = urlField.getText(); if (url != null && !url.trim().isEmpty()) { engine.load(url); } } /** * The main() method is ignored in correctly deployed JavaFX application. * main() serves only as fallback in case the application can not be * launched through deployment artifacts, e.g., in IDEs with limited FX * support. NetBeans ignores main(). * * @param args the command line arguments */ public static void main(String[] args) { launch(args); } }
で実行した画面ですが、反射の効果が、、、なぜがうまくいかないです。
まだまだ超初心者ですが、少しずつ勉強していこうと思います。
トラックバック - http://d.hatena.ne.jp/tomoTaka/20121117/1353114625
リンク元
- 26 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=14&ved=0CHoQFjAN&url=http://d.hatena.ne.jp/tomoTaka/20120226/1330259838&ei=gWynUKW9F6rMmAWe0YHgAg&usg=AFQjCNGlYicFF_w2NGBLxIRfORme0Sr5eg
- 26 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CC0QFjAB&url=http://d.hatena.ne.jp/tomoTaka/20120129/1327797345&ei=jfumUKW3EcSJmwXProCICA&usg=AFQjCNEPaMWw84BmXbLM4wg7-ZdEqRoeag&sig2=sdsk7y-73Qs9BFqNopVYTQ&cad=rja
- 14 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&ved=0CD4QFjAD&url=http://d.hatena.ne.jp/tomoTaka/20120428/1335615310&ei=LemmUN2MDarJmQXXuoDgDw&usg=AFQjCNGPJtDFG-dNXm6RfKQVwWpTU8GTrw
- 9 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0CD0QFjAC&url=http://d.hatena.ne.jp/tomoTaka/20120622/1340381565&ei=2IapUNn_K82ViAe17IHQAQ&usg=AFQjCNHMatsIkV0C8nkKozdyYX-C7uaR_Q&sig2=WD9Qp1jbVpj1XZkhxzgjWQ
- 8 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=5&ved=0CD0QFjAE&url=http://d.hatena.ne.jp/tomoTaka/20120428/1335615310&ei=k_SpUNSyG6PMmAWwvoGIDQ&usg=AFQjCNGPJtDFG-dNXm6RfKQVwWpTU8GTrw&sig2=UiE77hT8gzV5CMgCc3xgCA&cad=rjt
- 5 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=6&cad=rja&ved=0CFAQFjAF&url=http://d.hatena.ne.jp/tomoTaka/20121027/1351335432&ei=lIapUJ-2KMWdmQWEnIHoAg&usg=AFQjCNEL8cjuo8nSDJthZ9I9b-ZTpIo_Uw
- 4 http://www.google.co.jp/url?sa=f&rct=j&url=http://d.hatena.ne.jp/tomoTaka/20120320/1332212066&q=table+view+css&ei=Pf-qUIv2NcH4mAW4poHIAg&usg=AFQjCNGTpzZ2JMimM53T_ouQE2Mi5Gd8yg
- 4 http://www.manaslink.com/articles/7462
- 3 http://www.google.co.jp/url?sa=t&rct=j&q=実践ビジネス英語+勉強会+大阪&source=web&cd=3&ved=0CDcQFjAC&url=http://d.hatena.ne.jp/tomoTaka/20120602/13385988
- 3 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=8&ved=0CFIQFjAH&url=http://d.hatena.ne.jp/tomoTaka/20120129/1327797345&ei=_zSrUIn0FuPomAWmrYCoBw&usg=AFQjCNEPaMWw84BmXbLM4wg7-ZdEqRoeag