際際滷

際際滷Share a Scribd company logo
From Swing
    To JavaFX
 SwingからJavaFXへの
 マイグレ`ションガイド

         Java in the Box
         冤 v匯
From Swing to JavaFX  - SwingからJavaFXへのマイグレ`ションガイド
JavaFX の児云
JavaFX
   肝弊旗の Java の GUI Library

C嬬議には Swing+Java2D+α

 JavaSE8 から (JavaFX3.0)
public class Hello extends Application {
    @Override
    public void start(Stage stage) {
        // コンテナ
        Group container = new Group();

        // Scene Graph のル`トを伏撹し、コンテナをNる
        Scene scene = new Scene(container, 100, 20);
        stage.setScene(scene);

        // ラベルを伏撹しコンテナにNる
        Label label = new Label("Hello, World!");
        container.getChildren().add(label);


    }
        stage.show();   SceneGraph
    public static void main(String[] args) {
        Application.launch(args);
    }
}            アプリケ`ションスレッドの軟
はまりそうなところ
コンテナへの弖紗
 pane.add(comp);
 pane.getChildren().add(comp);

イベント リスナは1Nのみ
 button.setOnAction(
     new EventHandler<ActionEvent>() {
         public void handle(ActionEvent event) {
             // イベントI尖
         }
 });
Observer Pattern
Bind   View

                          Model


                     Event
       Controller
Bind   View

                     Model
              Bind

       Controller
Bind   View

                                  Model
                  Bind

       Controller

       // モデル
       DoubleProperty xProperty = new DoubleProperty();

       際際滷r slider = new 際際滷r(50, 300, 0);
       // モデルにスライダの、鬟丱ぅ鵐匹気擦
       xProperty.bind(slider.valueProperty());

       Rectangle rect = new Rectangle(50, 10, 50, 30);
       // 膨叔の x 恙砲縫皀妊襪鬟丱ぅ鵐匹気擦
       rect.xProperty().bind(xProperty);
シナリオで深える
マイグレ`ション
   シナリオ 1 JavaFX in Swing
  シナリオ 2 Swing to JavaFX
                 w/o FXML
   シナリオ 3 Swing to JavaFX
                   w/ FXML
JavaFX in Swing
  Swing アプリケ`ションに
          JavaFX を托めzむ
     剃はサポ`トしない

JavaFX でしかできないことを
              Swing へ
     Web   メディア
     グラフ   アニメ`ション
JavaFX in Swing
  Swing アプリケ`ションに
          JavaFX を托めzむ
     剃はサポ`トしない

JavaFX でしかできないことを
              Swing へ
    Web   メディア
    グラフ   アニメ`ション
JFXPanel
  Swing にNれる JavaFX 何瞳
      JFXPanel にはシ`ングラフを峰
 final JFXPanel fxPanel = new JFXPanel();   Swing EDT
 jframe.add(fxPanel);

 Platform.runLater(new Runnable() {
     @Override
     public void run() {       JavaFX App Thread
         AnchorPane root = new AnchorPane();
         Scene scene = new Scene(root);
         root.getChildren().add(new Button("JavaFX Button"));
         fxPanel.setScene(scene);
     }
 });
Swing to JavaFX w/o FXML
 Swing を JavaFX にきQえる
   聞い圭がほとんど揖じもの
      Label,Button,TextField, et al.
   やり圭は`うが、古廷は揖じもの
     レイアウト
   聞い圭が`うもの
     TableView,TreeView,ListView
Button
   Swing
      JButton = new JButton( ̄Swing ̄);

      button.addActionListener(new ActionListener() {
          @Override
          public void actionPerformed(new ActionEvent event) {
              // イベントI尖
          }
      });


 JavaFX
   Button = new Button( ̄JavaFX ̄);

   button.setOnAction(new EventHandler<ActionEvent>() {
       @Override
       public void handle(ActionEvent event) {
           // イベントI尖
       }
   });
Layout
Swing: コンテナ + レイアウトマネ`ジャ
  JPanel panel = new JPanel();
  panel.setLayout(new BorderLayout());

  panel.add(comp, BorderLayout.CENTER);


JavaFX: コンテナがレイアウトを根む
  BorderPane pane = new BorderPane();

  pane.setCenter(comp);
Table
Swing: TableModel
JavaFX: Bean を Column にバインド
 class Student { ...... }   // Java Bean

 TableView<Student> table = new TableView<>();

 TableColumn col1 = new TableColumn("Name");
 col1.setCellValueFactory(
     new PropertyValueFactory<Student, String>("name")
 );
 TableColumn col2 = new TableColumn("Grad Year");
 col2.setCellValueFactory(
     new PropertyValueFactory<Student, Integer>("gradYear")
 );

 table.setItems(students);
 table.getColumns().addAll(col1, col2);
Swing to JavaFX
           w/   FXML
FXML
  GUI の夛を XML で燕す
       シ`ングラフを燕Fする
スキ`マレス
 クラス : 勣殆
 プロパティ : 奉來 or 勣殆

       Java とのB亊
<AnchorPane prefHeight="400.0" prefWidth="600.0">
  <children>
    <HBox alignment="CENTER"
          prefHeight="50.0" prefWidth="572.0" spacing="20.0">
      <children>
        <TextField prefWidth="200.0" style="-fx-font-size: 24;" />
        <Button style="-fx-font-size: 24;" text="Load" />
      </children>
    </HBox>
    <WebView prefHeight="302.0" prefWidth="572.0" />
  </children>
</AnchorPane>



AnchorPane pane = FXMLLoader.load(
                    this.getClass().getResource("browser.fxml"));
FXML と Java のB亊

 View     Controller   Model
 FXML       Java       Java
fx:id     @FXML
#method
<AnchorPane xmlns:fx="http://javafx.com/fxml"
             fx:controller="contents.BrowserController">
  <children>
    <HBox>
      <children>
        <TextField fx:id="textfield" />
        <Button onAction="#handleAction" />
      </children>
    </HBox>
    <WebView fx:id="webview" />
  </children>
            public class BrowserController implements Initializable {
</AnchorPane> @FXML private TextField textfield;
               @FXML private WebView webview;
               private WebEngine engine;

               @FXML public void handleAction(ActionEvent event) {
                   engine.load(textfield.getText());
               }
               @Override
               public void initialize(URL url, ResourceBundle rb) {
                   engine = webview.getEngine();
               }
           }
Tool
 Java   NetBeans


 FXML   Scene Builder
Conclusion
 マイグレ`ション 3 つのシナリオ
 Component ベ`スなら
   それほど`いはない
 FXML

書晩やらなかったこと
  CSS, Animaction, Effect
  Shape, 掲揖豚I尖
From Swing
    To JavaFX
 SwingからJavaFXへの
 マイグレ`ションガイド


       Java in the Box
       冤 v匯

More Related Content

What's hot (20)

anyenv + phpenv + php-build が宴旋すぎる周
anyenv + phpenv + php-build が宴旋すぎる周anyenv + phpenv + php-build が宴旋すぎる周
anyenv + phpenv + php-build が宴旋すぎる周
y-uti
?
jBPM
jBPMjBPM
jBPM
V┴t Kota?ka
?
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 と
do_aki
?
??? ??? ????? ??? (??: ??? ?)
??? ??? ????? ??? (??: ??? ?)??? ??? ????? ??? (??: ??? ?)
??? ??? ????? ??? (??: ??? ?)
SangIn Choung
?
?? ?? ?? ???
?? ?? ?? ????? ?? ?? ???
?? ?? ?? ???
??????
?
Unit testing & TDD concepts with best practice guidelines.
Unit testing & TDD concepts with best practice guidelines.Unit testing & TDD concepts with best practice guidelines.
Unit testing & TDD concepts with best practice guidelines.
Mohamed Taman
?
React js
React jsReact js
React js
Rajesh Kolla
?
Spring Data JPA
Spring Data JPASpring Data JPA
Spring Data JPA
Cheng Ta Yeh
?
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)
Dennys Hsieh
?
principles of object oriented class design
principles of object oriented class designprinciples of object oriented class design
principles of object oriented class design
Neetu Mishra
?
React with Redux
React with ReduxReact with Redux
React with Redux
Stanimir Todorov
?
Writing Parsers and Compilers with PLY
Writing Parsers and Compilers with PLYWriting Parsers and Compilers with PLY
Writing Parsers and Compilers with PLY
David Beazley (Dabeaz LLC)
?
Selenium
SeleniumSelenium
Selenium
Batch2016
?
C++ ????? ?? ??? ????
C++ ????? ?? ??? ????C++ ????? ?? ??? ????
C++ ????? ?? ??? ????
OnGameServer
?
Redux Toolkit - Quick Intro - 2022
Redux Toolkit - Quick Intro - 2022Redux Toolkit - Quick Intro - 2022
Redux Toolkit - Quick Intro - 2022
Fabio Biondi
?
Vue, vue router, vuex
Vue, vue router, vuexVue, vue router, vuex
Vue, vue router, vuex
Samundra khatri
?
Introduction to Performance Testing & Loadrunner
Introduction to Performance Testing & LoadrunnerIntroduction to Performance Testing & Loadrunner
Introduction to Performance Testing & Loadrunner
Aisha Mazhar
?
The Online Tech of Titanfall
The Online Tech of TitanfallThe Online Tech of Titanfall
The Online Tech of Titanfall
vtslothy
?
UDA-Componentes RUP. Combo (v2.1.1 deprecado)UDA-Componentes RUP. Combo (v2.1.1 deprecado)
UDA-Componentes RUP. Combo (v2.1.1 deprecado)
Ander Martinez
?
What is WebElement in Selenium | Web Elements & Element Locators | Edureka
What is WebElement in Selenium | Web Elements & Element Locators | EdurekaWhat is WebElement in Selenium | Web Elements & Element Locators | Edureka
What is WebElement in Selenium | Web Elements & Element Locators | Edureka
Edureka!
?
anyenv + phpenv + php-build が宴旋すぎる周
anyenv + phpenv + php-build が宴旋すぎる周anyenv + phpenv + php-build が宴旋すぎる周
anyenv + phpenv + php-build が宴旋すぎる周
y-uti
?
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 と
do_aki
?
??? ??? ????? ??? (??: ??? ?)
??? ??? ????? ??? (??: ??? ?)??? ??? ????? ??? (??: ??? ?)
??? ??? ????? ??? (??: ??? ?)
SangIn Choung
?
?? ?? ?? ???
?? ?? ?? ????? ?? ?? ???
?? ?? ?? ???
??????
?
Unit testing & TDD concepts with best practice guidelines.
Unit testing & TDD concepts with best practice guidelines.Unit testing & TDD concepts with best practice guidelines.
Unit testing & TDD concepts with best practice guidelines.
Mohamed Taman
?
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)
Dennys Hsieh
?
principles of object oriented class design
principles of object oriented class designprinciples of object oriented class design
principles of object oriented class design
Neetu Mishra
?
C++ ????? ?? ??? ????
C++ ????? ?? ??? ????C++ ????? ?? ??? ????
C++ ????? ?? ??? ????
OnGameServer
?
Redux Toolkit - Quick Intro - 2022
Redux Toolkit - Quick Intro - 2022Redux Toolkit - Quick Intro - 2022
Redux Toolkit - Quick Intro - 2022
Fabio Biondi
?
Introduction to Performance Testing & Loadrunner
Introduction to Performance Testing & LoadrunnerIntroduction to Performance Testing & Loadrunner
Introduction to Performance Testing & Loadrunner
Aisha Mazhar
?
The Online Tech of Titanfall
The Online Tech of TitanfallThe Online Tech of Titanfall
The Online Tech of Titanfall
vtslothy
?
UDA-Componentes RUP. Combo (v2.1.1 deprecado)UDA-Componentes RUP. Combo (v2.1.1 deprecado)
UDA-Componentes RUP. Combo (v2.1.1 deprecado)
Ander Martinez
?
What is WebElement in Selenium | Web Elements & Element Locators | Edureka
What is WebElement in Selenium | Web Elements & Element Locators | EdurekaWhat is WebElement in Selenium | Web Elements & Element Locators | Edureka
What is WebElement in Selenium | Web Elements & Element Locators | Edureka
Edureka!
?

Viewers also liked (20)

Schrijven voor het web
Schrijven voor het webSchrijven voor het web
Schrijven voor het web
Simone Levie
?
01 marco conceptual y procesos01 marco conceptual y procesos
01 marco conceptual y procesos
Ruben Rodriguez
?
Alas en la oscuridad --caryangel y rousAlas en la oscuridad --caryangel y rous
Alas en la oscuridad --caryangel y rous
Nordith Donayre Guillen
?
Proyecto FormativoProyecto Formativo
Proyecto Formativo
Sebastian Marin
?
Manual bpm para la elaboracion de embutidosManual bpm para la elaboracion de embutidos
Manual bpm para la elaboracion de embutidos
Claudio
?
Metodolog┴a de la investigaci┏mMetodolog┴a de la investigaci┏m
Metodolog┴a de la investigaci┏m
Paul Itusaca Canaza
?
Proyectos_de_innovacionProyectos_de_innovacion
Proyectos_de_innovacion
WebMD
?
Marco del buen desempe?o docenteMarco del buen desempe?o docente
Marco del buen desempe?o docente
0013
?
"Protecci┏n de la salud mental luego del terremoto y tsunami del 27 de febrer..."Protecci┏n de la salud mental luego del terremoto y tsunami del 27 de febrer...
"Protecci┏n de la salud mental luego del terremoto y tsunami del 27 de febrer...
Organizaci┏n Panamericana de la Salud - Organizaci┏n Mundial de la Salud, Representaci┏n en Chile.
?
Primer Paquete Econ┏mico 2017 Zacatecas (2/9)Primer Paquete Econ┏mico 2017 Zacatecas (2/9)
Primer Paquete Econ┏mico 2017 Zacatecas (2/9)
Zacatecas TresPuntoCero
?
Relatietips
RelatietipsRelatietips
Relatietips
Gezondheid Acties
?
1?BACH ECONOM?A Repaso temas 5 6-7 (gh23)1?BACH ECONOM?A Repaso temas 5 6-7 (gh23)
1?BACH ECONOM?A Repaso temas 5 6-7 (gh23)
Geohistoria23
?
Error messages
Error messagesError messages
Error messages
rtinkelman
?
De Reis van de Heldin december 2015
De Reis van de Heldin december 2015De Reis van de Heldin december 2015
De Reis van de Heldin december 2015
Peter de Kuster
?
Gfpi f-019 guia de aprendizaje 01 tda orientar fpiGfpi f-019 guia de aprendizaje 01 tda orientar fpi
Gfpi f-019 guia de aprendizaje 01 tda orientar fpi
lisbet bravo
?
 An│lisis situacional integral de salud final An│lisis situacional integral de salud final
An│lisis situacional integral de salud final
Estefan┴a Echeverr┴a
?
Portafolio de Evidencias de mi Pr│ctica DocentePortafolio de Evidencias de mi Pr│ctica Docente
Portafolio de Evidencias de mi Pr│ctica Docente
Norma Vega
?
Geheugen verbeteren
Geheugen verbeterenGeheugen verbeteren
Geheugen verbeteren
Gezondheid Acties
?
JULIOPARI - Elaborando un Plan de NegociosJULIOPARI - Elaborando un Plan de Negocios
JULIOPARI - Elaborando un Plan de Negocios
Julio Pari
?
De impact van adhd
De impact van adhdDe impact van adhd
De impact van adhd
Gezondheid Acties
?
Schrijven voor het web
Schrijven voor het webSchrijven voor het web
Schrijven voor het web
Simone Levie
?
01 marco conceptual y procesos01 marco conceptual y procesos
01 marco conceptual y procesos
Ruben Rodriguez
?
Alas en la oscuridad --caryangel y rousAlas en la oscuridad --caryangel y rous
Alas en la oscuridad --caryangel y rous
Nordith Donayre Guillen
?
Proyecto FormativoProyecto Formativo
Proyecto Formativo
Sebastian Marin
?
Manual bpm para la elaboracion de embutidosManual bpm para la elaboracion de embutidos
Manual bpm para la elaboracion de embutidos
Claudio
?
Metodolog┴a de la investigaci┏mMetodolog┴a de la investigaci┏m
Metodolog┴a de la investigaci┏m
Paul Itusaca Canaza
?
Proyectos_de_innovacionProyectos_de_innovacion
Proyectos_de_innovacion
WebMD
?
Marco del buen desempe?o docenteMarco del buen desempe?o docente
Marco del buen desempe?o docente
0013
?
"Protecci┏n de la salud mental luego del terremoto y tsunami del 27 de febrer..."Protecci┏n de la salud mental luego del terremoto y tsunami del 27 de febrer...
"Protecci┏n de la salud mental luego del terremoto y tsunami del 27 de febrer...
Organizaci┏n Panamericana de la Salud - Organizaci┏n Mundial de la Salud, Representaci┏n en Chile.
?
Primer Paquete Econ┏mico 2017 Zacatecas (2/9)Primer Paquete Econ┏mico 2017 Zacatecas (2/9)
Primer Paquete Econ┏mico 2017 Zacatecas (2/9)
Zacatecas TresPuntoCero
?
1?BACH ECONOM?A Repaso temas 5 6-7 (gh23)1?BACH ECONOM?A Repaso temas 5 6-7 (gh23)
1?BACH ECONOM?A Repaso temas 5 6-7 (gh23)
Geohistoria23
?
De Reis van de Heldin december 2015
De Reis van de Heldin december 2015De Reis van de Heldin december 2015
De Reis van de Heldin december 2015
Peter de Kuster
?
Gfpi f-019 guia de aprendizaje 01 tda orientar fpiGfpi f-019 guia de aprendizaje 01 tda orientar fpi
Gfpi f-019 guia de aprendizaje 01 tda orientar fpi
lisbet bravo
?
 An│lisis situacional integral de salud final An│lisis situacional integral de salud final
An│lisis situacional integral de salud final
Estefan┴a Echeverr┴a
?
Portafolio de Evidencias de mi Pr│ctica DocentePortafolio de Evidencias de mi Pr│ctica Docente
Portafolio de Evidencias de mi Pr│ctica Docente
Norma Vega
?
JULIOPARI - Elaborando un Plan de NegociosJULIOPARI - Elaborando un Plan de Negocios
JULIOPARI - Elaborando un Plan de Negocios
Julio Pari
?

Similar to From Swing to JavaFX - SwingからJavaFXへのマイグレ`ションガイド (20)

JavaFX 2.0 - リッチクライアントのためのUI児P
JavaFX 2.0 - リッチクライアントのためのUI児PJavaFX 2.0 - リッチクライアントのためのUI児P
JavaFX 2.0 - リッチクライアントのためのUI児P
Yuichi Sakuraba
?
採が笋錣辰 JavaFX 2.0
採が笋錣辰 JavaFX 2.0採が笋錣辰 JavaFX 2.0
採が笋錣辰 JavaFX 2.0
Yuichi Sakuraba
?
Scene BuilderでFXML
Scene BuilderでFXMLScene BuilderでFXML
Scene BuilderでFXML
Yuichi Sakuraba
?
JavaFX 2.0 へのTい
JavaFX 2.0 へのTいJavaFX 2.0 へのTい
JavaFX 2.0 へのTい
Yuichi Sakuraba
?
Java FXグラフィックスとアニメ`ション秘T(JJUG CCC 2015 Spring G-7)
Java FXグラフィックスとアニメ`ション秘T(JJUG CCC 2015 Spring G-7)Java FXグラフィックスとアニメ`ション秘T(JJUG CCC 2015 Spring G-7)
Java FXグラフィックスとアニメ`ション秘T(JJUG CCC 2015 Spring G-7)
torutk
?
Visualforce + jQuery
Visualforce + jQueryVisualforce + jQuery
Visualforce + jQuery
Salesforce Developers Japan
?
はじめよう JavaFX 2.x┻3指 表Javaユ`ザ`氏
はじめよう JavaFX 2.x┻3指 表Javaユ`ザ`氏はじめよう JavaFX 2.x┻3指 表Javaユ`ザ`氏
はじめよう JavaFX 2.x┻3指 表Javaユ`ザ`氏
a know
?
Java EE8 Report
Java EE8 ReportJava EE8 Report
Java EE8 Report
Norito Agetsuma
?
JavaFX & GlassFish 茶氏 Oh! JavaFX 2.0!
JavaFX & GlassFish 茶氏 Oh! JavaFX 2.0!JavaFX & GlassFish 茶氏 Oh! JavaFX 2.0!
JavaFX & GlassFish 茶氏 Oh! JavaFX 2.0!
Yuichi Sakuraba
?
3D で[ぼう ゛C#er も TypeScript でS? WebGL゛
3D で[ぼう ゛C#er も TypeScript でS? WebGL゛3D で[ぼう ゛C#er も TypeScript でS? WebGL゛
3D で[ぼう ゛C#er も TypeScript でS? WebGL゛
Fujio Kojima
?
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXUnit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFX
Shinya Mochida
?
皆艶温壊温姻プロジェクト街久好待
皆艶温壊温姻プロジェクト街久好待皆艶温壊温姻プロジェクト街久好待
皆艶温壊温姻プロジェクト街久好待
takezoe
?
Study Intro Backbone
Study Intro BackboneStudy Intro Backbone
Study Intro Backbone
Gensei Kawasaki
?
I Log On Saa S
I Log On Saa SI Log On Saa S
I Log On Saa S
totty jp
?
Media Art II openFrameworks }方のシ`ンの砿尖?俳紋え
Media Art II openFrameworks }方のシ`ンの砿尖?俳紋えMedia Art II openFrameworks }方のシ`ンの砿尖?俳紋え
Media Art II openFrameworks }方のシ`ンの砿尖?俳紋え
Atsushi Tadokoro
?
WordPress widget api
WordPress widget apiWordPress widget api
WordPress widget api
Takami Kazuya
?
Xamarin て? ReactiveUI を聞ってみた
Xamarin て? ReactiveUI を聞ってみたXamarin て? ReactiveUI を聞ってみた
Xamarin て? ReactiveUI を聞ってみた
Hironov OKUYAMA
?
Apache Torqueについて
Apache TorqueについてApache Torqueについて
Apache Torqueについて
tako pons
?
レスポンシブ安艶恢デザイン‐k婢園/
レスポンシブ安艶恢デザイン‐k婢園/レスポンシブ安艶恢デザイン‐k婢園/
レスポンシブ安艶恢デザイン‐k婢園/
Yasuhito Yabe
?
JavaFX 2.0 - リッチクライアントのためのUI児P
JavaFX 2.0 - リッチクライアントのためのUI児PJavaFX 2.0 - リッチクライアントのためのUI児P
JavaFX 2.0 - リッチクライアントのためのUI児P
Yuichi Sakuraba
?
Java FXグラフィックスとアニメ`ション秘T(JJUG CCC 2015 Spring G-7)
Java FXグラフィックスとアニメ`ション秘T(JJUG CCC 2015 Spring G-7)Java FXグラフィックスとアニメ`ション秘T(JJUG CCC 2015 Spring G-7)
Java FXグラフィックスとアニメ`ション秘T(JJUG CCC 2015 Spring G-7)
torutk
?
はじめよう JavaFX 2.x┻3指 表Javaユ`ザ`氏
はじめよう JavaFX 2.x┻3指 表Javaユ`ザ`氏はじめよう JavaFX 2.x┻3指 表Javaユ`ザ`氏
はじめよう JavaFX 2.x┻3指 表Javaユ`ザ`氏
a know
?
JavaFX & GlassFish 茶氏 Oh! JavaFX 2.0!
JavaFX & GlassFish 茶氏 Oh! JavaFX 2.0!JavaFX & GlassFish 茶氏 Oh! JavaFX 2.0!
JavaFX & GlassFish 茶氏 Oh! JavaFX 2.0!
Yuichi Sakuraba
?
3D で[ぼう ゛C#er も TypeScript でS? WebGL゛
3D で[ぼう ゛C#er も TypeScript でS? WebGL゛3D で[ぼう ゛C#er も TypeScript でS? WebGL゛
3D で[ぼう ゛C#er も TypeScript でS? WebGL゛
Fujio Kojima
?
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXUnit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFX
Shinya Mochida
?
皆艶温壊温姻プロジェクト街久好待
皆艶温壊温姻プロジェクト街久好待皆艶温壊温姻プロジェクト街久好待
皆艶温壊温姻プロジェクト街久好待
takezoe
?
I Log On Saa S
I Log On Saa SI Log On Saa S
I Log On Saa S
totty jp
?
Media Art II openFrameworks }方のシ`ンの砿尖?俳紋え
Media Art II openFrameworks }方のシ`ンの砿尖?俳紋えMedia Art II openFrameworks }方のシ`ンの砿尖?俳紋え
Media Art II openFrameworks }方のシ`ンの砿尖?俳紋え
Atsushi Tadokoro
?
Xamarin て? ReactiveUI を聞ってみた
Xamarin て? ReactiveUI を聞ってみたXamarin て? ReactiveUI を聞ってみた
Xamarin て? ReactiveUI を聞ってみた
Hironov OKUYAMA
?
Apache Torqueについて
Apache TorqueについてApache Torqueについて
Apache Torqueについて
tako pons
?
レスポンシブ安艶恢デザイン‐k婢園/
レスポンシブ安艶恢デザイン‐k婢園/レスポンシブ安艶恢デザイン‐k婢園/
レスポンシブ安艶恢デザイン‐k婢園/
Yasuhito Yabe
?

More from Yuichi Sakuraba (20)

Vector API - Javaによるベクタ`コンピュ`ティング
Vector API - Javaによるベクタ`コンピュ`ティングVector API - Javaによるベクタ`コンピュ`ティング
Vector API - Javaによるベクタ`コンピュ`ティング
Yuichi Sakuraba
?
Oracle Code One - Java KeynoteとJava SE
Oracle Code One - Java KeynoteとJava SEOracle Code One - Java KeynoteとJava SE
Oracle Code One - Java KeynoteとJava SE
Yuichi Sakuraba
?
Project Loom + Project Panama
Project Loom + Project PanamaProject Loom + Project Panama
Project Loom + Project Panama
Yuichi Sakuraba
?
Project Loom - 浙┥@AとX楚スレッド -
Project Loom - 浙┥@AとX楚スレッド - Project Loom - 浙┥@AとX楚スレッド -
Project Loom - 浙┥@AとX楚スレッド -
Yuichi Sakuraba
?
Oracle Code One 鷂羯 Java SE Update
Oracle Code One 鷂羯 Java SE UpdateOracle Code One 鷂羯 Java SE Update
Oracle Code One 鷂羯 Java SE Update
Yuichi Sakuraba
?
書こそStream API秘T
書こそStream API秘T書こそStream API秘T
書こそStream API秘T
Yuichi Sakuraba
?
Oracle Code One 鷂羯 Java SE Update
Oracle Code One 鷂羯 Java SE UpdateOracle Code One 鷂羯 Java SE Update
Oracle Code One 鷂羯 Java SE Update
Yuichi Sakuraba
?
Learn Language 2018 Java Language Update
Learn Language 2018 Java Language Update Learn Language 2018 Java Language Update
Learn Language 2018 Java Language Update
Yuichi Sakuraba
?
禽看界一艶姻に鬚韻董干温厩温もダイエット
禽看界一艶姻に鬚韻董干温厩温もダイエット禽看界一艶姻に鬚韻董干温厩温もダイエット
禽看界一艶姻に鬚韻董干温厩温もダイエット
Yuichi Sakuraba
?
What's New in Java
What's New in JavaWhat's New in Java
What's New in Java
Yuichi Sakuraba
?
Migration Guide to Java SE 10, and also Java SE 11
Migration Guide to Java SE 10, and also Java SE 11Migration Guide to Java SE 10, and also Java SE 11
Migration Guide to Java SE 10, and also Java SE 11
Yuichi Sakuraba
?
苞芒弼のJava - Project Amber -
苞芒弼のJava - Project Amber -苞芒弼のJava - Project Amber -
苞芒弼のJava - Project Amber -
Yuichi Sakuraba
?
Moving to Module: Issues & Solutions
Moving to Module: Issues & SolutionsMoving to Module: Issues & Solutions
Moving to Module: Issues & Solutions
Yuichi Sakuraba
?
モジュ`ル卞佩の仁籾と貨
モジュ`ル卞佩の仁籾と貨モジュ`ル卞佩の仁籾と貨
モジュ`ル卞佩の仁籾と貨
Yuichi Sakuraba
?
Project Jigsawと、ちょっとだけVector API
Project Jigsawと、ちょっとだけVector APIProject Jigsawと、ちょっとだけVector API
Project Jigsawと、ちょっとだけVector API
Yuichi Sakuraba
?
Java SE 9の畠嘆
Java SE 9の畠嘆Java SE 9の畠嘆
Java SE 9の畠嘆
Yuichi Sakuraba
?
Java SEのF壓、^肇 そして隆栖Java SEのF壓、^肇 そして隆栖
Java SEのF壓、^肇 そして隆栖
Yuichi Sakuraba
?
Java SE 9 のススメ
Java SE 9 のススメJava SE 9 のススメ
Java SE 9 のススメ
Yuichi Sakuraba
?
Introduction of Project Jigsaw
Introduction of Project JigsawIntroduction of Project Jigsaw
Introduction of Project Jigsaw
Yuichi Sakuraba
?
Encouragement of Java SE 9
Encouragement of Java SE 9Encouragement of Java SE 9
Encouragement of Java SE 9
Yuichi Sakuraba
?
Vector API - Javaによるベクタ`コンピュ`ティング
Vector API - Javaによるベクタ`コンピュ`ティングVector API - Javaによるベクタ`コンピュ`ティング
Vector API - Javaによるベクタ`コンピュ`ティング
Yuichi Sakuraba
?
Oracle Code One - Java KeynoteとJava SE
Oracle Code One - Java KeynoteとJava SEOracle Code One - Java KeynoteとJava SE
Oracle Code One - Java KeynoteとJava SE
Yuichi Sakuraba
?
Project Loom + Project Panama
Project Loom + Project PanamaProject Loom + Project Panama
Project Loom + Project Panama
Yuichi Sakuraba
?
Project Loom - 浙┥@AとX楚スレッド -
Project Loom - 浙┥@AとX楚スレッド - Project Loom - 浙┥@AとX楚スレッド -
Project Loom - 浙┥@AとX楚スレッド -
Yuichi Sakuraba
?
Oracle Code One 鷂羯 Java SE Update
Oracle Code One 鷂羯 Java SE UpdateOracle Code One 鷂羯 Java SE Update
Oracle Code One 鷂羯 Java SE Update
Yuichi Sakuraba
?
Oracle Code One 鷂羯 Java SE Update
Oracle Code One 鷂羯 Java SE UpdateOracle Code One 鷂羯 Java SE Update
Oracle Code One 鷂羯 Java SE Update
Yuichi Sakuraba
?
Learn Language 2018 Java Language Update
Learn Language 2018 Java Language Update Learn Language 2018 Java Language Update
Learn Language 2018 Java Language Update
Yuichi Sakuraba
?
禽看界一艶姻に鬚韻董干温厩温もダイエット
禽看界一艶姻に鬚韻董干温厩温もダイエット禽看界一艶姻に鬚韻董干温厩温もダイエット
禽看界一艶姻に鬚韻董干温厩温もダイエット
Yuichi Sakuraba
?
Migration Guide to Java SE 10, and also Java SE 11
Migration Guide to Java SE 10, and also Java SE 11Migration Guide to Java SE 10, and also Java SE 11
Migration Guide to Java SE 10, and also Java SE 11
Yuichi Sakuraba
?
苞芒弼のJava - Project Amber -
苞芒弼のJava - Project Amber -苞芒弼のJava - Project Amber -
苞芒弼のJava - Project Amber -
Yuichi Sakuraba
?
Moving to Module: Issues & Solutions
Moving to Module: Issues & SolutionsMoving to Module: Issues & Solutions
Moving to Module: Issues & Solutions
Yuichi Sakuraba
?
モジュ`ル卞佩の仁籾と貨
モジュ`ル卞佩の仁籾と貨モジュ`ル卞佩の仁籾と貨
モジュ`ル卞佩の仁籾と貨
Yuichi Sakuraba
?
Project Jigsawと、ちょっとだけVector API
Project Jigsawと、ちょっとだけVector APIProject Jigsawと、ちょっとだけVector API
Project Jigsawと、ちょっとだけVector API
Yuichi Sakuraba
?
Java SEのF壓、^肇 そして隆栖Java SEのF壓、^肇 そして隆栖
Java SEのF壓、^肇 そして隆栖
Yuichi Sakuraba
?
Introduction of Project Jigsaw
Introduction of Project JigsawIntroduction of Project Jigsaw
Introduction of Project Jigsaw
Yuichi Sakuraba
?

From Swing to JavaFX - SwingからJavaFXへのマイグレ`ションガイド

  • 1. From Swing To JavaFX SwingからJavaFXへの マイグレ`ションガイド Java in the Box 冤 v匯
  • 4. JavaFX 肝弊旗の Java の GUI Library C嬬議には Swing+Java2D+α JavaSE8 から (JavaFX3.0)
  • 5. public class Hello extends Application { @Override public void start(Stage stage) { // コンテナ Group container = new Group(); // Scene Graph のル`トを伏撹し、コンテナをNる Scene scene = new Scene(container, 100, 20); stage.setScene(scene); // ラベルを伏撹しコンテナにNる Label label = new Label("Hello, World!"); container.getChildren().add(label); } stage.show(); SceneGraph public static void main(String[] args) { Application.launch(args); } } アプリケ`ションスレッドの軟
  • 6. はまりそうなところ コンテナへの弖紗 pane.add(comp); pane.getChildren().add(comp); イベント リスナは1Nのみ button.setOnAction( new EventHandler<ActionEvent>() { public void handle(ActionEvent event) { // イベントI尖 } });
  • 7. Observer Pattern Bind View Model Event Controller
  • 8. Bind View Model Bind Controller
  • 9. Bind View Model Bind Controller // モデル DoubleProperty xProperty = new DoubleProperty(); 際際滷r slider = new 際際滷r(50, 300, 0); // モデルにスライダの、鬟丱ぅ鵐匹気擦 xProperty.bind(slider.valueProperty()); Rectangle rect = new Rectangle(50, 10, 50, 30); // 膨叔の x 恙砲縫皀妊襪鬟丱ぅ鵐匹気擦 rect.xProperty().bind(xProperty);
  • 10. シナリオで深える マイグレ`ション シナリオ 1 JavaFX in Swing シナリオ 2 Swing to JavaFX w/o FXML シナリオ 3 Swing to JavaFX w/ FXML
  • 11. JavaFX in Swing Swing アプリケ`ションに JavaFX を托めzむ 剃はサポ`トしない JavaFX でしかできないことを Swing へ Web メディア グラフ アニメ`ション
  • 12. JavaFX in Swing Swing アプリケ`ションに JavaFX を托めzむ 剃はサポ`トしない JavaFX でしかできないことを Swing へ Web メディア グラフ アニメ`ション
  • 13. JFXPanel Swing にNれる JavaFX 何瞳 JFXPanel にはシ`ングラフを峰 final JFXPanel fxPanel = new JFXPanel(); Swing EDT jframe.add(fxPanel); Platform.runLater(new Runnable() { @Override public void run() { JavaFX App Thread AnchorPane root = new AnchorPane(); Scene scene = new Scene(root); root.getChildren().add(new Button("JavaFX Button")); fxPanel.setScene(scene); } });
  • 14. Swing to JavaFX w/o FXML Swing を JavaFX にきQえる 聞い圭がほとんど揖じもの Label,Button,TextField, et al. やり圭は`うが、古廷は揖じもの レイアウト 聞い圭が`うもの TableView,TreeView,ListView
  • 15. Button Swing JButton = new JButton( ̄Swing ̄); button.addActionListener(new ActionListener() { @Override public void actionPerformed(new ActionEvent event) { // イベントI尖 } }); JavaFX Button = new Button( ̄JavaFX ̄); button.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { // イベントI尖 } });
  • 16. Layout Swing: コンテナ + レイアウトマネ`ジャ JPanel panel = new JPanel(); panel.setLayout(new BorderLayout()); panel.add(comp, BorderLayout.CENTER); JavaFX: コンテナがレイアウトを根む BorderPane pane = new BorderPane(); pane.setCenter(comp);
  • 17. Table Swing: TableModel JavaFX: Bean を Column にバインド class Student { ...... } // Java Bean TableView<Student> table = new TableView<>(); TableColumn col1 = new TableColumn("Name"); col1.setCellValueFactory( new PropertyValueFactory<Student, String>("name") ); TableColumn col2 = new TableColumn("Grad Year"); col2.setCellValueFactory( new PropertyValueFactory<Student, Integer>("gradYear") ); table.setItems(students); table.getColumns().addAll(col1, col2);
  • 18. Swing to JavaFX w/ FXML
  • 19. FXML GUI の夛を XML で燕す シ`ングラフを燕Fする スキ`マレス クラス : 勣殆 プロパティ : 奉來 or 勣殆 Java とのB亊
  • 20. <AnchorPane prefHeight="400.0" prefWidth="600.0"> <children> <HBox alignment="CENTER" prefHeight="50.0" prefWidth="572.0" spacing="20.0"> <children> <TextField prefWidth="200.0" style="-fx-font-size: 24;" /> <Button style="-fx-font-size: 24;" text="Load" /> </children> </HBox> <WebView prefHeight="302.0" prefWidth="572.0" /> </children> </AnchorPane> AnchorPane pane = FXMLLoader.load( this.getClass().getResource("browser.fxml"));
  • 21. FXML と Java のB亊 View Controller Model FXML Java Java fx:id @FXML #method
  • 22. <AnchorPane xmlns:fx="http://javafx.com/fxml" fx:controller="contents.BrowserController"> <children> <HBox> <children> <TextField fx:id="textfield" /> <Button onAction="#handleAction" /> </children> </HBox> <WebView fx:id="webview" /> </children> public class BrowserController implements Initializable { </AnchorPane> @FXML private TextField textfield; @FXML private WebView webview; private WebEngine engine; @FXML public void handleAction(ActionEvent event) { engine.load(textfield.getText()); } @Override public void initialize(URL url, ResourceBundle rb) { engine = webview.getEngine(); } }
  • 23. Tool Java NetBeans FXML Scene Builder
  • 24. Conclusion マイグレ`ション 3 つのシナリオ Component ベ`スなら それほど`いはない FXML 書晩やらなかったこと CSS, Animaction, Effect Shape, 掲揖豚I尖
  • 25. From Swing To JavaFX SwingからJavaFXへの マイグレ`ションガイド Java in the Box 冤 v匯