【JavaFX】コンボボックスに項目を設定する

2018年7月20日Java, 開発

おはようございます。

今回は、JavaFXの基本的な構成や仕組みなどを学ぶために
とりあえずコンボボックスに項目を設定して選択できるようにしてみます。

開発環境については以前の記事を参考にしてください。

スポンサーリンク

画面の作成

画面は SceneBuilder にて作成します。
(WPF で作成した画面と同等のものを作ってみたいと思います。)

WPF編はこちら

初期状態では、「BorderPane」が設置されていますが、
それを削除して「AnchorPane」を設置し、その上にコントロールを配置していきます。

AnchorPane というのは、
簡単に言うとコントロールを座標(絶対位置)で配置できるレイアウトになります。

その他のレイアウトについてはそのうち紹介できればします。

画面へコントロールを配置
画面へコントロールを配置

SceneBuilder上で CTRL + P を押すとプレビュー表示することができます。

プレビュー表示
プレビュー表示

eclipse で Java プリケーションの実行をしなくても起動後の画面がサクッと表示されます。
(プログラムは動かないのでコントロールの位置確認のみ)

 

Sample.fxml

コントローラクラスの実装

JavaFX では、
基本的に fxml (画面定義)と対応するコントローラー(クラス)を作成し、
コントローラーにてイベントなどを処理するような構成となります。

fxml に記述した

でコントローラを指定し、コントローラークラスには
画面に設置したコントロールをメンバーとして定義することが必要。

こうすることで、
コントローラークラスにて画面のコントロールを操作することが可能となります。

SampleController.java

 

メインクラスの修正

ちょっと嵌ったんですが
fxml で AnchorPane のサイズをいくら変更しても
いざ起動してみるとその通りのサイズになってくれませんでした。

よくよく見なおしてみると、メインクラスにて、
Scene のインスタンスを初期化する際に、幅と高さを指定していたことが原因でした。
(デフォルトでそうなっている)

幅と高さの指定を取り除いたら問題なく fxml で指定したサイズで表示されるようになりました。

Main.java

 

起動してみる

コンボボックスに項目が設定された画面
コンボボックスに項目が設定された画面

とりあえずコンボボックスへ項目を設定することができました。

次回は、
データベースから取得したデータを設定してみたいと思います。

ではでは。

 

スポンサーリンク


関連するコンテンツ

2018年7月20日Java, 開発Java, JavaFX, Scene Builder, プログラミング

Posted by doradora