Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Starting java fx

2,176 views

Published on

Published in: Technology, News & Politics
  • Be the first to comment

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>

×