• BPnet
  • ビジネス
  • IT
  • テクノロジー
  • 医療
  • 建設・不動産
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版
Java技術最前線

JavaFX 2で始めるGUI開発 第7回 レイアウト その1

櫻庭 祐一=横河電機 2013/02/04 日経ソフトウエア

 先月はGUIには直接関連のないプロパティとバインドについて紹介しました。今月から、再びGUI関連の話題に戻ります。

 今までコントロールなどを使用してGUIを構成するサンプルをいろいろと作成してきました。しかし、サンプルに含まれるにも関わらず、説明を省いてきた部分があります。それがコンテナとレイアウトです。

 コンテナは複数のノードを貼るためのノードです。一方、コンテナに貼るノードの配置をおこなうのがレイアウトになります。

 Swingではコンテナの機能とレイアウトの機能は分割されており、それぞれjava.awt.Containerクラス、java.awt.LayoutManagerインタフェースで表します。これに対し、JavaFXではコンテナにレイアウト機能が含まれています。

 そこで、今月と来月で、コンテナとレイアウトについてご紹介します。

 今月使用するサンプルは以下のリンクからダウンロードできます。

サンプルのプロジェクト (こちらからダウンロードできます)

ノードのサイズ

 レイアウトの機能を紹介する前に、レイアウトには必須の情報であるノードのサイズについて説明することにしましょう。とはいうものの、ノードのサイズを直接指定することはできません。サイズを決めるのはレイアウト機能だからです。

 ノードでできることはレイアウト機能に対して、サイズを決めるための情報を与えることだけです。

 ノードで指定できるサイズを決めるための情報には次の3種類があります。

  • 最小サイズ minWidth、minHeight
  • 推奨サイズ prefWidth、prefHeight
  • 最大サイズ maxWidth、maxHeight

 レイアウトの種類によっては推奨サイズをそのまま使用するものもありますし、使用しないこともあります。また、推奨サイズを使用していたとしても、ステージのリサイズに伴って推奨サイズから外れてしまうこともあります。

 ただし、ほとんどのレイアウトで最小サイズと最大サイズは守られます。つまり、リサイズして縮小した場合でも最小サイズより小さくなることはありません。同様に、拡大しても最大サイズより大きくなることはありません。

 ところが、NodeクラスはprefWidthやpreHeightなどのプロパティを定義していません。とはいうもののコントロールやコンテナはすべてprefWidthやprefHeightなどのプロパティが使用可能です。幅と高さをまとめて設定するsetPrefSize/setMinSize/setMaxSizeメソッドも定義されています。

 また、ButtonクラスやLabelクラスなどは、表示する文字列などから最小サイズ、推奨サイズおよび最大サイズが自動的に設定されます。もちろん、再設定することも可能です。

次ページ以降はITpro会員(無料)の方のみお読みいただけます。

次ページ コンテナ
  • 1
  • 2
  • 3
  • 4
  • 5

あなたにお薦め

連載新着

連載目次を見る

ITpro SPECIALPR

What’s New!

アプリケーション/DB/ミドルウエア

クラウド

運用管理

設計/開発

サーバー/ストレージ

クライアント/OA機器

ネットワーク/通信サービス

セキュリティ

もっと見る