2012-05-12 20 views
0

皆さん、私はどのようにfxmlファイルにあるテーブルビューにmysqlデータベースからデータを取り出すことができますか?私はデータを取得し、fxmlファイルにあるテーブルビューに配置する必要があります。私はデータベースにどのように接続するのか考えていますが、データを取得してtableviewに配置する方法はわかりません。JavaFX 2.0データベースからのデータを持つFXMLのTableView

テーブルビューはfxmlファイルにあります。私はまだここにいる場合、誰もがデータをインポートした後、私はこのテーブルビュー内のセルを編集することができます知っている?

私がやっているアプリケーションは、デスクトップのアプリケーションです!

ありがとう、私の悪い英語のために申し訳ありません!

答えて

3

これを行うにはいくつかの方法がありますが、1つはDataFXのJDBCアダプタを使用する方法です。

更新

FXML自体はそれがデータベースからデータをロードすることができない、XMLベースのUI構造を定義します。

データがデータベースから発信された場合、データ値を含む静的なfxmlファイルを作成することは、ほとんどの場合、悪い考えです。データベースのデータが変更されるたびに、新しいfxmlファイルを生成してロードする必要があります。そのためには、手作業で新しいファイルを作成するか、脆弱なプログラムを作成して、新しいfxmlファイルを生成する必要があります。データベース。

推奨アプローチ:

  1. あなたのテーブルビューの構造を定義するのではなく、実際のデータ値を格納するだけでなく、FXMLを使用してください。
  2. JavaFX Javaコードでは、mysqlデータベースに接続します。
  3. DataFX JDBCデータソースアダプタを使用して、データベースからデータを取得し、TableViewに移入します。

手順3を実行する独自のコードを書くことができます。JPA(現在はDataFXが直接サポートしていないと思います)を使用する場合は、独自のコードを使用するとよいでしょう。そうしないと、DataFX実装を使用したほうが、より良い結果が早く得られるでしょう。

TableViewでの編集方法については、TableView tutorialをお読みください。繰り返しますが、DataFXはControl Cell Factoriesを編集するための手助けをします。そのため、TableView編集処理を手作業で行うのではなく、DataFXを使用することをお勧めします。

データベースにコミットする必要があるときにDataFXコードが役立つかどうかはわかりません。その場合は、おそらく変更をコミットするために独自のJDBCまたはJPAコードを追加する必要があります。

+0

私はAPIを見ましたが、私はfxmlファイルのために何か必要があります。私はfxmlからデータをロードしたい!ありがとうございます –

+0

fxmlがデータベースからデータを読み込めない理由の更新を追加し、詳細な提案手法を追加しました。 – jewelsea

+0

JDBCデータソースアダプタを使用してデータを取得する方法についての抜粋はありますか? – AsirC

1

AFAIKでは、DBからのデータをFXMLファイルで取得して表示することはできず、FXMLファイルでtableviewセルを編集可能にすることはできません。可能であれば(おそらく部分的にカスタムBuilderBuilderFactory)、それはMVCの意味で行うことはお勧めしません。最初にWhy Use FXMLとその利点をお読みください。 FXMLファイルで基本データ構造を定義することもできます(Introduction to FXML参照)。
コントローラのinitialize()メソッドで非ビュー関連のタスクを実行します。つまり、データを取得してテーブルビューの項目を設定します。編集などをサポートするために、テーブル列のセルファクトリをカスタマイズします。

+0

だから私は理解しているように、fxmlコントローラからそれを行うことができます!右? –

関連する問題