More Related Content Similar to 見よう見まねでJavaFX! (20) 見よう見まねでJavaFX!11. 作ってみました。
検索
顧客一覧画面 顧客編集画面
顧客ID
編集 更新
参照 参照・更新
DB
Customerテーブル
12. 作ってみました。
Controller FXMLファイル Controller FXMLファイル
検索
Application
顧客一覧画面 顧客編集画面
顧客ID
編集 更新
参照 参照・更新
DB
Customerテーブル
13. 環境
• Java SE 7u7
• NetBeans 7.2
• Scene Builder 1.0
• MySQL Server 5.5
16. 顧客一覧画面
you can add the data to the table by using
the setItems method of the TableView class:
table.setItems(data).
20. 顧客一覧画面
DB
Customerテーブル
1 suzuki ichiro fuga
2 yamada taro hoge
21. 顧客一覧画面
DB
Customerテーブル
1 suzuki ichiro fuga
2 sato taro hoge
22. 顧客一覧画面
DB
Customerテーブル
1 suzuki ichiro fuga
2 sato taro hoge
23. 顧客一覧画面
■検索ボタン押下時
// Customerを検索 “sato” が入ってる
List<Customer> cList = CustomerAccess.selectAll();
ObservableList<Customer> oList =
FXCollections.observableArrayList(cList);
// テーブルに設定
tableView.setItems(oList);
24. 顧客一覧画面
■検索ボタン押下時
// Customerを検索 “sato” が入ってる
List<Customer> cList = CustomerAccess.selectAll();
ObservableList<Customer> oList =
FXCollections.observableArrayList(cList);
// テーブルに設定
tableView.setItems(oList);
画面は”yamada”のまま(:_;)
26. 顧客一覧画面
■初期化時
// TableViewをデータ0件で初期化
List<Customer> cList = new ArrayList<>(0);
ObservableList<Customer> oList =
FXCollections.observableArrayList(cList);
tableView.setItems(oList);
■検索ボタン押下時
“sato” が入ってる
tableView.getItems().clear();
// Customerを検索
List<Customer> cList = CustomerAccess.selectAll();
tableView.getItems().addAll(cList);
27. 顧客一覧画面
■初期化時
// TableViewをデータ0件で初期化
List<Customer> cList = new ArrayList<>(0);
ObservableList<Customer> oList =
FXCollections.observableArrayList(cList);
tableView.setItems(oList);
■検索ボタン押下時
“sato” が入ってる
tableView.getItems().clear();
// Customerを検索
List<Customer> cList = CustomerAccess.selectAll();
tableView.getItems().addAll(cList);
画面は”yamada”のまま(:_;)
32. 顧客一覧画面
We are refreshing data in a tableview using
layout():
solution for a refresh would be great
Without layout(), table is not refreshed ...
33. 顧客一覧画面
We are refreshing data in a tableview using
layout():
solution for a refresh would be great
Without layout(), table is not refreshed ...
there should be no refresh problem.
34. 顧客一覧画面
■初期化時
// TableViewをデータ0件で初期化
(略)
■検索ボタン押下時
tableView.getItems().clear();
tableView.layout();
// Customerを検索
List<Customer> cList = CustomerAccess.selectAll();
tableView.getItems().addAll(cList);
42. 顧客編集画面
public static なフィールド
にセットすればいいのよ
(>_<)
44. 顧客編集画面
// FXMLファイルをロード
FXMLLoader fxmlLoader = new FXMLLoader(
getClass().getResource("fxml/UpdateScreen.fxml"));
Parent root = (Parent) fxmlLoader.load();
Scene scene = new Scene(root );
// ロードしたFXMLファイルに関連づくControllerを取得
~(中略) ~
final UpdateScreenController controller =
(UpdateScreenController) fxmlLoader.getController();
45. 顧客編集画面
// FXMLファイルをロード
Parent root = FXMLLoader.load(
getClass().getResource("fxml/SearchScreen.fxml"));
Scene scene = new Scene(root);
// FXMLファイルをロード
FXMLLoader fxmlLoader = new FXMLLoader(
getClass().getResource("fxml/UpdateScreen.fxml"));
Parent root = (Parent) fxmlLoader.load();
Scene scene = new Scene(root );
// ロードしたFXMLファイルに関連づくControllerを取得
final UpdateScreenController controller =
(UpdateScreenController) fxmlLoader.getController();
46. 顧客編集画面
■顧客一覧画面Controller ■顧客編集画面Controller
fxmlLoader.load(); Initialize(URL, ResourceBundle)
controller.setId(id); public void setId(Integer id){
this.id = id;
}
newStage.setOnShowing(new
EventHandler<WindowEvent>() {
@Override
public void handle(WindowEvent t) {
// 画面が開いたことをControllerに通知 public void onShowing(){
controller.onShowing(); // id指定でCustomer検索
} }
);
50. 参考文献
• Using JavaFX UI Controls
– http://docs.oracle.com/javafx/2/ui_controls/table-view.htm
• Ability to force a ListView or TableView refresh
– http://javafx-jira.kenai.com/browse/RT-22599
• Javafx 2.0 How-to Application.getParameters() in a Controller.java file
– http://stackoverflow.com/questions/10134856/javafx-2-0-how-to-
application-getparameters-in-a-controller-java-file
• Thread: Cannot access controller
– https://forums.oracle.com/forums/thread.jspa?threadID=2379964