狠狠撸

狠狠撸Share a Scribd company logo
Scene Builderで
          FXML

        Java in the Box
        櫻庭 祐一
Scene BuilderでFXML
FXML
JavaFX
   GUI Library for Java


もちろん、すべて Java で記述
public class Hello extends Application {
    @Override
    public void start(Stage stage) {
        // ルートコンテナ
        AnchorPane root = new AnchorPane();

        // Scene Graph を生成し、ルートコンテナを貼る
        Scene scene = new Scene(root);
        stage.setScene(scene);

        // Scene Graph を構築
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
Scene Graph
   = Tree
Stage

       Scene
     AnchorPane

            HBox
TableView


Label TextField Button
AnchorPane root = new AnchorPane();
Scene scene = new Scene(root);
stage.setScene(scene);

TableView<Person> table = new TableView<>();
root.getChildren().add(table);

HBox hbox = new HBox();
Label label = new Label("Label");
hbox.getChildren().add(label);
TextField field = new TextField("TextField");
hbox.getChildren().add(field);
Button button = new Button("button");
hbox.getChildren().add(button);
root.getChildren().add(hbox);
Java      XML
  手続き       構造

   冗長        簡潔
ツールとの相性   ツールとの相性
FXML
  シーングラフを XML で表す
 スキーマレス
  クラス : 要素
  プロパティ : 属性 or 要素
 CSS
  Java との連携
<AnchorPane prefHeight="400.0" prefWidth="600.0">
  <children>
    <HBox alignment="CENTER"
          prefHeight="50.0" prefWidth="572.0" spacing="20.0">
      <children>
        <Label style="-fx-font-size: 24;" text="Label" />
        <TextField style="-fx-font-size: 24;" text="TextField" />
        <Button style="-fx-font-size: 24;" text="Load" />
      </children>
    </HBox>
    <TableView prefHeight="302.0" prefWidth="572.0" />
  </children>
</AnchorPane>


AnchorPane pane = FXMLLoader.load(
                    this.getClass().getResource("table.fxml"));
FXML と Java の連携

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

               @FXML public void handleAction(ActionEvent event) {
                   // テーブルの更新
               }
               @Override
               public void initialize(URL url, ResourceBundle rb) {
                   // テーブルの初期化
               }
           }
FXML は便利
 でも複雑なGUIになると...
 やっぱりツールがほしい!!


 Scene Builder
Scene Builder
Scene Builder

    WYSWYG FXML Editor




             連携

  NetBeans        Scene Builder
   Java              FXML
できること
FXML をグラフィカルに編集
 Preview
  CSS の設定
   Controller の設定
できないこと
コントローラの作成
 外部 CSS の編集
 FXML ソースの表示
  NB とのプロジェクト共有
Making an Application
     w/ Scene Builder
Conclusion
 FXML でシーングラフを簡単に

  MVC (Presentation Model, MVVM)

Scene Builder: FXML Editor
  UI 構築には便利
  まだまだ足りない点いっぱい
Scene Builderで
            FXML

        Java in the Box
        櫻庭 祐一

More Related Content

What's hot (20)

搁别补肠迟入门-闯厂翱狈を取得して表示する
搁别补肠迟入门-闯厂翱狈を取得して表示する搁别补肠迟入门-闯厂翱狈を取得して表示する
搁别补肠迟入门-闯厂翱狈を取得して表示する
regret raym
?
础苍驳耻濒补谤.箩蝉についてちょっとしゃべる
础苍驳耻濒补谤.箩蝉についてちょっとしゃべる础苍驳耻濒补谤.箩蝉についてちょっとしゃべる
础苍驳耻濒补谤.箩蝉についてちょっとしゃべる
Masashi Haga
?
搁别补肠迟.箩蝉でクライアントサイドな奥别产アプリ入门
搁别补肠迟.箩蝉でクライアントサイドな奥别产アプリ入门搁别补肠迟.箩蝉でクライアントサイドな奥别产アプリ入门
搁别补肠迟.箩蝉でクライアントサイドな奥别产アプリ入门
spring_raining
?
G * magazine 1
G * magazine 1G * magazine 1
G * magazine 1
Tsuyoshi Yamamoto
?
図とコード例で多分わかる React と flux (工事中)
図とコード例で多分わかる React と flux (工事中)図とコード例で多分わかる React と flux (工事中)
図とコード例で多分わかる React と flux (工事中)
Teloo
?
础苍驳耻濒补谤闯厂入门
础苍驳耻濒补谤闯厂入门础苍驳耻濒补谤闯厂入门
础苍驳耻濒补谤闯厂入门
Kenji Shirane
?
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
miso- soup3
?
チュートリアルではじめる痴耻别.箩蝉
チュートリアルではじめる痴耻别.箩蝉チュートリアルではじめる痴耻别.箩蝉
チュートリアルではじめる痴耻别.箩蝉
小川 昌吾
?
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Y Watanabe
?
はじめての痴耻别.箩蝉
はじめての痴耻别.箩蝉はじめての痴耻别.箩蝉
はじめての痴耻别.箩蝉
Kei Yagi
?
痴耻别.箩蝉て?さくっと惭痴痴惭
痴耻别.箩蝉て?さくっと惭痴痴惭痴耻别.箩蝉て?さくっと惭痴痴惭
痴耻别.箩蝉て?さくっと惭痴痴惭
Satoshi Anai
?
20091030cakephphandson 01
20091030cakephphandson 0120091030cakephphandson 01
20091030cakephphandson 01
Yusuke Ando
?
はじめての痴耻别.箩蝉
はじめての痴耻别.箩蝉はじめての痴耻别.箩蝉
はじめての痴耻别.箩蝉
kamiyam .
?
WordPress widget api
WordPress widget apiWordPress widget api
WordPress widget api
Takami Kazuya
?
Form libraries
Form librariesForm libraries
Form libraries
Atsushi Odagiri
?
エンタープライズ分野での実践础苍驳耻濒补谤闯厂
エンタープライズ分野での実践础苍驳耻濒补谤闯厂エンタープライズ分野での実践础苍驳耻濒补谤闯厂
エンタープライズ分野での実践础苍驳耻濒补谤闯厂
Ayumi Goto
?
Windows ストアアプリのgrid viewを入門してみた
Windows ストアアプリのgrid viewを入門してみたWindows ストアアプリのgrid viewを入門してみた
Windows ストアアプリのgrid viewを入門してみた
一希 大田
?
Sencha ug3 siesta_share
Sencha ug3 siesta_shareSencha ug3 siesta_share
Sencha ug3 siesta_share
久司 中村
?
搁别补肠迟入门-闯厂翱狈を取得して表示する
搁别补肠迟入门-闯厂翱狈を取得して表示する搁别补肠迟入门-闯厂翱狈を取得して表示する
搁别补肠迟入门-闯厂翱狈を取得して表示する
regret raym
?
础苍驳耻濒补谤.箩蝉についてちょっとしゃべる
础苍驳耻濒补谤.箩蝉についてちょっとしゃべる础苍驳耻濒补谤.箩蝉についてちょっとしゃべる
础苍驳耻濒补谤.箩蝉についてちょっとしゃべる
Masashi Haga
?
搁别补肠迟.箩蝉でクライアントサイドな奥别产アプリ入门
搁别补肠迟.箩蝉でクライアントサイドな奥别产アプリ入门搁别补肠迟.箩蝉でクライアントサイドな奥别产アプリ入门
搁别补肠迟.箩蝉でクライアントサイドな奥别产アプリ入门
spring_raining
?
図とコード例で多分わかる React と flux (工事中)
図とコード例で多分わかる React と flux (工事中)図とコード例で多分わかる React と flux (工事中)
図とコード例で多分わかる React と flux (工事中)
Teloo
?
础苍驳耻濒补谤闯厂入门
础苍驳耻濒补谤闯厂入门础苍驳耻濒补谤闯厂入门
础苍驳耻濒补谤闯厂入门
Kenji Shirane
?
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
miso- soup3
?
チュートリアルではじめる痴耻别.箩蝉
チュートリアルではじめる痴耻别.箩蝉チュートリアルではじめる痴耻别.箩蝉
チュートリアルではじめる痴耻别.箩蝉
小川 昌吾
?
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Y Watanabe
?
はじめての痴耻别.箩蝉
はじめての痴耻别.箩蝉はじめての痴耻别.箩蝉
はじめての痴耻别.箩蝉
Kei Yagi
?
痴耻别.箩蝉て?さくっと惭痴痴惭
痴耻别.箩蝉て?さくっと惭痴痴惭痴耻别.箩蝉て?さくっと惭痴痴惭
痴耻别.箩蝉て?さくっと惭痴痴惭
Satoshi Anai
?
20091030cakephphandson 01
20091030cakephphandson 0120091030cakephphandson 01
20091030cakephphandson 01
Yusuke Ando
?
はじめての痴耻别.箩蝉
はじめての痴耻别.箩蝉はじめての痴耻别.箩蝉
はじめての痴耻别.箩蝉
kamiyam .
?
エンタープライズ分野での実践础苍驳耻濒补谤闯厂
エンタープライズ分野での実践础苍驳耻濒补谤闯厂エンタープライズ分野での実践础苍驳耻濒补谤闯厂
エンタープライズ分野での実践础苍驳耻濒补谤闯厂
Ayumi Goto
?
Windows ストアアプリのgrid viewを入門してみた
Windows ストアアプリのgrid viewを入門してみたWindows ストアアプリのgrid viewを入門してみた
Windows ストアアプリのgrid viewを入門してみた
一希 大田
?
Sencha ug3 siesta_share
Sencha ug3 siesta_shareSencha ug3 siesta_share
Sencha ug3 siesta_share
久司 中村
?

Similar to Scene BuilderでFXML (20)

2011年2月9日第130回贵虫鲍骋勉强会@东京第一打者空振り叁振
2011年2月9日第130回贵虫鲍骋勉强会@东京第一打者空振り叁振2011年2月9日第130回贵虫鲍骋勉强会@东京第一打者空振り叁振
2011年2月9日第130回贵虫鲍骋勉强会@东京第一打者空振り叁振
Sadao Tokuyama
?
Visualforce + jQuery
Visualforce + jQueryVisualforce + jQuery
Visualforce + jQuery
Salesforce Developers Japan
?
厂别补蝉补谤プロジェクト彻底攻略
厂别补蝉补谤プロジェクト彻底攻略厂别补蝉补谤プロジェクト彻底攻略
厂别补蝉补谤プロジェクト彻底攻略
takezoe
?
Java FXグラフィックスとアニメーション入門(JJUG CCC 2015 Spring G-7)
Java FXグラフィックスとアニメーション入門(JJUG CCC 2015 Spring G-7)Java FXグラフィックスとアニメーション入門(JJUG CCC 2015 Spring G-7)
Java FXグラフィックスとアニメーション入門(JJUG CCC 2015 Spring G-7)
torutk
?
Backbone.js
Backbone.jsBackbone.js
Backbone.js
daisuke shimizu
?
densan2014-late01
densan2014-late01densan2014-late01
densan2014-late01
Takenori Nakagawa
?
厂肠补尝补+尝颈蹿迟とか
厂肠补尝补+尝颈蹿迟とか厂肠补尝补+尝颈蹿迟とか
厂肠补尝补+尝颈蹿迟とか
youku
?
[Excel VBA] Convert a sheet to Markdown file.
[Excel VBA] Convert a sheet to Markdown file.[Excel VBA] Convert a sheet to Markdown file.
[Excel VBA] Convert a sheet to Markdown file.
Sakai Memoru
?
Lt 111217
Lt 111217Lt 111217
Lt 111217
Tomoyuki Obi
?
イマドキの现场で使える闯补惫补ライブラリ事情
イマドキの现场で使える闯补惫补ライブラリ事情イマドキの现场で使える闯补惫补ライブラリ事情
イマドキの现场で使える闯补惫补ライブラリ事情
takezoe
?
Knocked out in knockout js
Knocked out in knockout jsKnocked out in knockout js
Knocked out in knockout js
Hiroyuki Tashima
?
I Log On Saa S
I Log On Saa SI Log On Saa S
I Log On Saa S
totty jp
?
Play framework 2.0のちょっとした紹介
Play framework 2.0のちょっとした紹介Play framework 2.0のちょっとした紹介
Play framework 2.0のちょっとした紹介
Ryo RKTM
?
Try Jetpack
Try JetpackTry Jetpack
Try Jetpack
Hideaki Miyake
?
Cakephp2.1 ViewBlock view-inheritance
Cakephp2.1 ViewBlock view-inheritanceCakephp2.1 ViewBlock view-inheritance
Cakephp2.1 ViewBlock view-inheritance
Kohji Tanaka
?
CSS Nite in Matsuyama vol.1 - session 4
CSS Nite in Matsuyama vol.1 - session 4 CSS Nite in Matsuyama vol.1 - session 4
CSS Nite in Matsuyama vol.1 - session 4
arisu yano
?
自作苍辞诲别.箩蝉フレームワークと苍驳颈苍虫を使ってラジオサイトを作ってみた
自作苍辞诲别.箩蝉フレームワークと苍驳颈苍虫を使ってラジオサイトを作ってみた自作苍辞诲别.箩蝉フレームワークと苍驳颈苍虫を使ってラジオサイトを作ってみた
自作苍辞诲别.箩蝉フレームワークと苍驳颈苍虫を使ってラジオサイトを作ってみた
Yuki Takei
?
HTML5 on ASP.NET
HTML5 on ASP.NETHTML5 on ASP.NET
HTML5 on ASP.NET
Fujio Kojima
?
LabVIEW NXG Web Module Training 狠狠撸
LabVIEW NXG Web Module Training 狠狠撸LabVIEW NXG Web Module Training 狠狠撸
LabVIEW NXG Web Module Training 狠狠撸
Yusuke Tochigi
?
Angular js はまりと?ころ
Angular js はまりと?ころAngular js はまりと?ころ
Angular js はまりと?ころ
Ayumi Goto
?
2011年2月9日第130回贵虫鲍骋勉强会@东京第一打者空振り叁振
2011年2月9日第130回贵虫鲍骋勉强会@东京第一打者空振り叁振2011年2月9日第130回贵虫鲍骋勉强会@东京第一打者空振り叁振
2011年2月9日第130回贵虫鲍骋勉强会@东京第一打者空振り叁振
Sadao Tokuyama
?
厂别补蝉补谤プロジェクト彻底攻略
厂别补蝉补谤プロジェクト彻底攻略厂别补蝉补谤プロジェクト彻底攻略
厂别补蝉补谤プロジェクト彻底攻略
takezoe
?
Java FXグラフィックスとアニメーション入門(JJUG CCC 2015 Spring G-7)
Java FXグラフィックスとアニメーション入門(JJUG CCC 2015 Spring G-7)Java FXグラフィックスとアニメーション入門(JJUG CCC 2015 Spring G-7)
Java FXグラフィックスとアニメーション入門(JJUG CCC 2015 Spring G-7)
torutk
?
厂肠补尝补+尝颈蹿迟とか
厂肠补尝补+尝颈蹿迟とか厂肠补尝补+尝颈蹿迟とか
厂肠补尝补+尝颈蹿迟とか
youku
?
[Excel VBA] Convert a sheet to Markdown file.
[Excel VBA] Convert a sheet to Markdown file.[Excel VBA] Convert a sheet to Markdown file.
[Excel VBA] Convert a sheet to Markdown file.
Sakai Memoru
?
イマドキの现场で使える闯补惫补ライブラリ事情
イマドキの现场で使える闯补惫补ライブラリ事情イマドキの现场で使える闯补惫补ライブラリ事情
イマドキの现场で使える闯补惫补ライブラリ事情
takezoe
?
I Log On Saa S
I Log On Saa SI Log On Saa S
I Log On Saa S
totty jp
?
Play framework 2.0のちょっとした紹介
Play framework 2.0のちょっとした紹介Play framework 2.0のちょっとした紹介
Play framework 2.0のちょっとした紹介
Ryo RKTM
?
Cakephp2.1 ViewBlock view-inheritance
Cakephp2.1 ViewBlock view-inheritanceCakephp2.1 ViewBlock view-inheritance
Cakephp2.1 ViewBlock view-inheritance
Kohji Tanaka
?
CSS Nite in Matsuyama vol.1 - session 4
CSS Nite in Matsuyama vol.1 - session 4 CSS Nite in Matsuyama vol.1 - session 4
CSS Nite in Matsuyama vol.1 - session 4
arisu yano
?
自作苍辞诲别.箩蝉フレームワークと苍驳颈苍虫を使ってラジオサイトを作ってみた
自作苍辞诲别.箩蝉フレームワークと苍驳颈苍虫を使ってラジオサイトを作ってみた自作苍辞诲别.箩蝉フレームワークと苍驳颈苍虫を使ってラジオサイトを作ってみた
自作苍辞诲别.箩蝉フレームワークと苍驳颈苍虫を使ってラジオサイトを作ってみた
Yuki Takei
?
LabVIEW NXG Web Module Training 狠狠撸
LabVIEW NXG Web Module Training 狠狠撸LabVIEW NXG Web Module Training 狠狠撸
LabVIEW NXG Web Module Training 狠狠撸
Yusuke Tochigi
?
Angular js はまりと?ころ
Angular js はまりと?ころAngular js はまりと?ころ
Angular js はまりと?ころ
Ayumi Goto
?

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 - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド - Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド -
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入門
今こそStream API入門今こそStream API入門
今こそStream API入門
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の現在、過去 そして未来Java SEの現在、過去 そして未来
Java SEの現在、過去 そして未来
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 - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド - Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド -
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の現在、過去 そして未来Java SEの現在、過去 そして未来
Java SEの現在、過去 そして未来
Yuichi Sakuraba
?
Introduction of Project Jigsaw
Introduction of Project JigsawIntroduction of Project Jigsaw
Introduction of Project Jigsaw
Yuichi Sakuraba
?

Recently uploaded (8)

Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
?
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
?
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
?
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
Matsushita Laboratory
?
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ssuserfcafd1
?
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
?
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
?
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
?
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
?
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
Matsushita Laboratory
?
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ssuserfcafd1
?
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
?
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?

Scene BuilderでFXML

  • 1. Scene Builderで FXML Java in the Box 櫻庭 祐一
  • 4. JavaFX GUI Library for Java もちろん、すべて Java で記述
  • 5. public class Hello extends Application { @Override public void start(Stage stage) { // ルートコンテナ AnchorPane root = new AnchorPane(); // Scene Graph を生成し、ルートコンテナを貼る Scene scene = new Scene(root); stage.setScene(scene); // Scene Graph を構築 stage.show(); } public static void main(String[] args) { launch(args); } }
  • 6. Scene Graph = Tree
  • 7. Stage Scene AnchorPane HBox TableView Label TextField Button
  • 8. AnchorPane root = new AnchorPane(); Scene scene = new Scene(root); stage.setScene(scene); TableView<Person> table = new TableView<>(); root.getChildren().add(table); HBox hbox = new HBox(); Label label = new Label("Label"); hbox.getChildren().add(label); TextField field = new TextField("TextField"); hbox.getChildren().add(field); Button button = new Button("button"); hbox.getChildren().add(button); root.getChildren().add(hbox);
  • 9. Java XML 手続き 構造 冗長 簡潔 ツールとの相性 ツールとの相性
  • 10. FXML シーングラフを XML で表す スキーマレス クラス : 要素 プロパティ : 属性 or 要素 CSS Java との連携
  • 11. <AnchorPane prefHeight="400.0" prefWidth="600.0"> <children> <HBox alignment="CENTER" prefHeight="50.0" prefWidth="572.0" spacing="20.0"> <children> <Label style="-fx-font-size: 24;" text="Label" /> <TextField style="-fx-font-size: 24;" text="TextField" /> <Button style="-fx-font-size: 24;" text="Load" /> </children> </HBox> <TableView prefHeight="302.0" prefWidth="572.0" /> </children> </AnchorPane> AnchorPane pane = FXMLLoader.load( this.getClass().getResource("table.fxml"));
  • 12. FXML と Java の連携 View Controller Model FXML Java Java fx:id @FXML #method
  • 13. <AnchorPane xmlns:fx="http://javafx.com/fxml" fx:controller="contents.TableController"> <children> <HBox> <children> <Label /> <TextField fx:id="textfield" /> <Button onAction="#handleAction" /> </children> </HBox> <TableView fx:id="table" /> </children> public class TableController implements Initializable { </AnchorPane> @FXML private TextField textfield; @FXML private TableView table; @FXML public void handleAction(ActionEvent event) { // テーブルの更新 } @Override public void initialize(URL url, ResourceBundle rb) { // テーブルの初期化 } }
  • 14. FXML は便利 でも複雑なGUIになると... やっぱりツールがほしい!! Scene Builder
  • 16. Scene Builder WYSWYG FXML Editor 連携 NetBeans Scene Builder Java FXML
  • 18. できないこと コントローラの作成 外部 CSS の編集 FXML ソースの表示 NB とのプロジェクト共有
  • 19. Making an Application w/ Scene Builder
  • 20. Conclusion FXML でシーングラフを簡単に MVC (Presentation Model, MVVM) Scene Builder: FXML Editor UI 構築には便利 まだまだ足りない点いっぱい
  • 21. Scene Builderで FXML Java in the Box 櫻庭 祐一