Starting java fx

1,986 views
1,866 views

Published on

Published in: Technology, News & Politics
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,986
On SlideShare
0
From Embeds
0
Number of Embeds
412
Actions
Shares
0
Downloads
8
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Starting java fx

    1. 1. 5分で!Starting JavaFX @hakurai
    2. 2. 自己紹介• @hakurai• 奈良生まれ奈良育ち• Java + Swing• 流れ的にJavaFX• 模型とか→
    3. 3. Twitterクライアントを作る &
    4. 4. NetBeans IDE
    5. 5. JavaFX プロジェクトを作成する
    6. 6. FXMLコントローラクラス
    7. 7. FXMLコントローラクラス
    8. 8. AnchorPane TextArea Button ListView
    9. 9. ビューの構造を表すFXML AnchorPane TextArea Button ListView
    10. 10. XML?めんどくさい!
    11. 11. JavaFX Scene Builder
    12. 12. コントローラクラス
    13. 13. FXML アノテーション
    14. 14. fx:id=”tweetButton”fx:id=”inputTweetArea” fx:id=”statusList”
    15. 15. fx:id=”tweetButton”fx:id=”inputTweetArea” fx:id=”statusList”
    16. 16. onAction=”#handleTweetAction”
    17. 17. ステータスをStreaming APIで取得
    18. 18. 非同期処理
    19. 19. イベント処理 画面更新 JavaFX Application Thread
    20. 20. イベント処理 画面更新 JavaFX Application Thread 重い処理
    21. 21. イベント処理 画面更新 JavaFX Application Thread 重い処理
    22. 22. フリーズイベント処理 画面更新 JavaFX Application Thread 重い処理
    23. 23. JavaFX Application 別スレッド Thread
    24. 24. 重い処理は別のスレッドtweetExecutor.execute(new Runnable() { @Override public void run() { try { twitterServiceAgent.updateStatus(text); } catch (TwitterException ex) { } } });
    25. 25. JavaFX Application 別スレッド Thread
    26. 26. データ不整合JavaFX Application 別スレッド Thread
    27. 27. JavaFX Application 別スレッド Thread
    28. 28. 画面の更新はJavaFX Application Thread public void onStatus(final Status status) { Platform.runLater(new Runnable() { @Override public void run() { if (statusList.size() >= maxStatusNum) { statusList.remove(maxStatusNum - 1); } statusList.add(0, status); } });
    29. 29. 早速動かしてみた
    30. 30. テキストしか出ない・・・ status.toString()
    31. 31. ListCell と CellFactory
    32. 32. セルに表示するオブジェクトを返す ListCell<Status> StatusCellFactory Callback<ListView<Status>, ListCell<Status>>
    33. 33. ListCell<Status>

    ×