0

mysqlデータベースからfxmlファイルにあるテーブルビューにデータを取得するにはどうすればよいのでしょうか。データを取得して、fxmlファイルにあるテーブルビューに配置する必要があります。データベースに接続する方法はわかっていますが、データを取得してテーブルビューに配置する方法がわかりません。

テーブルビューはfxmlファイルにあります。私がまだここにいる場合、データをインポートした後、このテーブルビューのセルを編集するにはどうすればよいですか?

私が取り組んでいるアプリケーションはデスクトップです!

4

2 に答える 2

3

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

アップデート

FXML 自体は xml ベースの UI 構造を定義するだけで、データベースからデータをロードすることはできません。

データがデータベースに由来する場合、ほとんどの場合、データ値を含む静的な fxml ファイルを作成することはお勧めできません。データベース内のデータが変更されるたびに、新しい fxml ファイルを生成してロードする必要があります。そのためには、手動で新しいファイルを作成するか、壊れやすいプログラムを記述して、データベース内のデータに基づいて新しい fxml ファイルを生成する必要があります。データベース。

推奨されるアプローチ:

  1. fxml を使用して TableView 構造を定義し、実際のデータ値を含めないようにしてください。
  2. JavaFX Java コードで、mysql データベースに接続します。
  3. DataFX JDBC データ ソース アダプターを使用して、データベースからデータを取得し、TableView に入力します。

ステップ 3 を実行する独自のコードを作成できます。JPA を使用する場合は、独自のコードを使用することをお勧めします (DataFX は現在直接サポートしていないと思います)。それ以外の場合は、DataFX 実装を使用すると、より良い結果が得られる可能性が高くなります。

TableView で編集を行う方法については、このTableView チュートリアルをお読みください。繰り返しますが、DataFX は、編集用のコントロール セルファクトリを提供することで役立ちます。そのため、TableView 編集処理をハンドコーディングするのではなく、DataFX を使用することをお勧めします。

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

于 2012-05-12T16:26:50.127 に答える
1

私の知る限り、FXMLファイルでDBからデータを取得して表示したり、テーブルビューセルをFXMLファイルで編集可能にしたりすることはできません。可能であったとしても (おそらく部分的にカスタムBuilderとを介してBuilderFactory)、MVC の意味でそれを行うことはお勧めしません。まず、 FXML を使用する理由とその利点についてお読みください。必要に応じて、FXML ファイルでいくつかの基本的なデータ構造を定義することもできます。「 FXML の紹介」を参照してください。
したがって、コントローラーのメソッドでビューに関連しないタスクを実行しますinitialize()。つまり、データを取得してテーブルビューのアイテムを設定します。テーブル列のセル ファクトリをカスタマイズして、編集などをサポートします。

于 2012-05-12T20:17:04.083 に答える