LayoutManager
このページでは、GridBagLayout
、SpringLayout
、BoxLayout
といったレイアウトマネージャー関係の使い方を集めて一覧にしています。
- Layout
- ↑10 ↓11
- CardLayoutを使ってJTabbedPane風のコンポーネントを作成
- JTabbedPane風のタブ配置をレイアウトマネージャーで変更
- LayoutManagerを使ってパネルの展開アニメーションを行う
- JMenuBarのJMenuを折り返し
- JTextAreaをキャプションとして画像上にスライドイン
- LayoutManagerを拡張して曲線上にコンポーネントを配置
- Borderの右下にJComponentを配置
- JProgressBarの進捗文字列の字揃えを変更する
- GridLayoutとJScrollPaneを使ったグリッド単位での表示切り替え
- OverlayLayoutで複数のJButtonを重ねて複合ボタンを作成
- ↑20 ↓21
- JScrollBarを半透明にする
- JMenuItemの内部にJButtonを配置する
- FlowLayoutでボタンを重ねてパンくずリストを作成する
- JPopupMenuのレイアウトを変更して上部にメニューボタンを追加する
- JPasswordFieldでパスワードを可視化する
- BoxLayoutでJLabelの中央揃えをテストする
- JDesktopPane内のJInternalFrameをJTabbedPaneのタブと入れ替える
- JToggleButtonをFlowLayoutで重ねて表示する
- JTableHeaderで作成したタブエリアでCardLayoutのコンテナを切り替える
- Component上に重ねて配置したダイアログの表示状態をアニメーション付きで切り替える
- ↑30 ↓31
- LayoutManagerでコンポーネントのサイズを変更する
- JFileChooserのファイル名とフィルタのラベルを右揃えに変更する
- JTreeとCardLayoutでサイドメニューを作成する
- JLabelの最大幅を共有して異なるパネル間で垂直位置を揃える
- JListからの大量アイテム削除を高速化する
- JToolBarがドラッグ・アウト状態になった場合、そのLayoutManagerを変更する
- Componentの3列配置、中央幅固定、左右均等引き伸ばしを行うLayoutManagerを作成する
- JPanelに追加したコンポーネントの順序を変更する
- GridBagLayoutを使ってJButtonをキーボード状に配置する
- GridLayout内でのセル位置を取得する
- ↑40 ↓41
- JEditorPaneのミニマップを表示する
- JPanelの子コンポーネントを水平方向で折り返す
- CardLayoutの前後のカードを左右に表示する
- CardLayoutを設定したパネル上にOverlayLayoutでカード切り替え用のJComboBoxを配置する
- JMenuから開くポップアップウィンドウのレイアウトを2列に変更する
- JSeparatorで段落罫線を描画する
- CardLayoutで作成したJTabbedPane風コンポーネントのタブエリアに水平JScrollBarを表示する
- LayoutManagerを実装して常に中央に子コンポーネントを配置する
- JTabbedPaneのタブエリアレイアウトを変更して一覧表示ボタンなどを追加する
- TitledBorderの背景色を設定する
- JRadioButtonの選択アイコンを除いたテキスト先頭をJLabelと揃える
- JToolBarの配置位置によってJToolTipの表示方向を切り替える
- JMenuBarのレイアウトを変更して垂直方向にJMenuを配置する
Layout
DynamicLayoutでレイアウトの動的評価
DynamicLayoutでレイアウトの動的評価
ウィンドウのリサイズなどに応じてレイアウトを再評価するように、DynamicLayout
を設定します。
JButtonの高さを変更せずに幅を指定
JButtonの高さを変更せずに幅を指定
高さはデフォルトのまま幅だけを指定して、JButton
、JComboBox
、JTextField
などのサイズを変更します。
BoxLayoutでリスト状に並べる
BoxLayoutでリスト状に並べる
高さの異なるコンポーネントをスクロールできるようにリスト状に並べます。
ImageIconの形でJButtonを作成
ImageIconの形でJButtonを作成
任意のShape
とその形に透過色を設定した画像を使ってJButton
を作成します。
SpringLayoutの使用
SpringLayoutの使用
SpringLayout
を使用して、各ラベルのサイズとパネルからの距離が一定の比率になるような配置を指定します。
GridBagLayoutの使用
GridBagLayoutの使用
GridBagLayout
を使用して、左右の部品のサイズを固定、中央だけは水平方向に伸縮可になるよう配置します。
GridBagLayoutを使ってレンガ状に配置
GridBagLayoutを使ってレンガ状に配置
GridBagLayout
を使ってコンポーネントをレンガ状に配置します。
GroupLayoutの使用
GroupLayoutの使用
JDK 6
で新しく導入されたGroupLayout
とGridBagLayout
を比較しています。
OverlayLayoutの使用
OverlayLayoutの使用
OverlayLayout
を使用し、JButton
を重ねて配置します。
JTabbedPaneの余白にJButtonを配置
JTabbedPaneの余白にJButtonを配置
JTabbedPane
のタブエリアに余白を作成し、そこにOverlayLayout
を使ってJButton
を配置します。
↑10 ↓11
CardLayoutを使ってJTabbedPane風のコンポーネントを作成
CardLayoutを使ってJTabbedPane風のコンポーネントを作成
CardLayout
とJRadioButton
やJTableHeader
を組み合わせてJTabbedPane
風のコンポーネントを作成します。
JTabbedPane風のタブ配置をレイアウトマネージャーで変更
JTabbedPane風のタブ配置をレイアウトマネージャーで変更
CardLayout
とJRadioButton
で作成したJTabbedPane
風コンポーネントのタブ配置を自作レイアウトマネージャーで変更します。
LayoutManagerを使ってパネルの展開アニメーションを行う
LayoutManagerを使ってパネルの展開アニメーションを行う
パネルの展開・収納をアニメーションで行うLayoutManager
を作成します。
JMenuBarのJMenuを折り返し
JMenuBarのJMenuを折り返し
JMenuBar
のレイアウトマネージャーを変更して、JMenu
を折り返して表示します。
JTextAreaをキャプションとして画像上にスライドイン
JTextAreaをキャプションとして画像上にスライドイン
画像の上にJTextArea
をスライドインアニメーションで表示します。
LayoutManagerを拡張して曲線上にコンポーネントを配置
LayoutManagerを拡張して曲線上にコンポーネントを配置
LayoutManager
を拡張して曲線上にコンポーネントを配置します。
Borderの右下にJComponentを配置
Borderの右下にJComponentを配置
SpringLayout
を設定したJLayeredPane
を使って、Border
の右下にJComponent
を配置します。
JProgressBarの進捗文字列の字揃えを変更する
JProgressBarの進捗文字列の字揃えを変更する
JProgressBar
の進捗文字列をJLabel
にして、字揃えなどを変更します。
GridLayoutとJScrollPaneを使ったグリッド単位での表示切り替え
GridLayoutとJScrollPaneを使ったグリッド単位での表示切り替え
JPanel
にGridLayout
でコンポーネントを追加し、これをJScrollPane
に配置して、グリッド単位での表示、スクロールアニメーションによる切り替えを行います。
OverlayLayoutで複数のJButtonを重ねて複合ボタンを作成
OverlayLayoutで複数のJButtonを重ねて複合ボタンを作成
4
つの扇形ボタンと円形ボタンを、OverlayLayout
を設定したJPanel
に配置して、複合ボタンを作成します。
↑20 ↓21
JScrollBarを半透明にする
JScrollBarを半透明にする
半透明のJScrollBar
を作成して、JViewport
内部に配置します。
JMenuItemの内部にJButtonを配置する
JMenuItemの内部にJButtonを配置する
JMenuItem
の内部に切り取り、コピー、貼り付けを行うJButton
を配置します。
FlowLayoutでボタンを重ねてパンくずリストを作成する
FlowLayoutでボタンを重ねてパンくずリストを作成する
FlowLayout
の水平間隔をマイナスにして、JRadioButton
を重ねて表示し、パンくずリスト風のコンポーネントを作成します。
JPopupMenuのレイアウトを変更して上部にメニューボタンを追加する
JPopupMenuのレイアウトを変更して上部にメニューボタンを追加する
JPopupMenu
のレイアウトを変更することで、上部にメニューボタンを水平に並べて表示します。
JPasswordFieldでパスワードを可視化する
JPasswordFieldでパスワードを可視化する
JPasswordField
に入力したパスワードの表示・非表示を切り替えるためのボタンを作成し、これを入力欄などに配置します。
BoxLayoutでJLabelの中央揃えをテストする
BoxLayoutでJLabelの中央揃えをテストする
BoxLayout
を設定したJPanel
に、最小サイズを設定したJLabel
を中央揃えで配置するテストを行います。
JDesktopPane内のJInternalFrameをJTabbedPaneのタブと入れ替える
JDesktopPane内のJInternalFrameをJTabbedPaneのタブと入れ替える
JDesktopPane
とJTabbedPane
をCardLayout
で切り替えるとき、その内部のJInternalFrame
とタブもすべて入れ替えます。
JToggleButtonをFlowLayoutで重ねて表示する
JToggleButtonをFlowLayoutで重ねて表示する
ボタンテキストが左揃えの非矩形JToggleButton
をFlowLayout
を使って任意の幅だけ重ねて配置します。
JTableHeaderで作成したタブエリアでCardLayoutのコンテナを切り替える
JTableHeaderで作成したタブエリアでCardLayoutのコンテナを切り替える
JTableHeader
をタブエリアとして使用し、TableColumn
をクリックするとCardLayout
のコンテナが切り替わるようにマウスリスナーを設定します。
Component上に重ねて配置したダイアログの表示状態をアニメーション付きで切り替える
Component上に重ねて配置したダイアログの表示状態をアニメーション付きで切り替える
Component
上に重ねて配置した検索用ダイアログの位置をアニメーション付きで変更するレイアウトマネージャを作成し、その表示非表示をキー入力で切り替えます。
↑30 ↓31
LayoutManagerでコンポーネントのサイズを変更する
LayoutManagerでコンポーネントのサイズを変更する
LayoutManager
を使用して、コンポーネントの状態に応じてそのサイズや位置を変更します。
JFileChooserのファイル名とフィルタのラベルを右揃えに変更する
JFileChooserのファイル名とフィルタのラベルを右揃えに変更する
JFileChooser
の下部に表示されるファイル名とフィルタのラベルを左揃えから右揃えに変更します。
JTreeとCardLayoutでサイドメニューを作成する
JTreeとCardLayoutでサイドメニューを作成する
JTree
のスタイルを変更してサイドメニュー風のコンポーネントを作成し、ノード選択に応じてCardLayout
でのパネル切り替えを実行します。
JLabelの最大幅を共有して異なるパネル間で垂直位置を揃える
JLabelの最大幅を共有して異なるパネル間で垂直位置を揃える
JLabel
の垂直位置を異なるパネル間でも揃えるため、最大幅のJLabel
を検索してこれをすべての推奨サイズとして使用します。
JListからの大量アイテム削除を高速化する
JListからの大量アイテム削除を高速化する
JList
のListModel
からの大量のアイテムを高速に削除する方法をテストします。
JToolBarがドラッグ・アウト状態になった場合、そのLayoutManagerを変更する
JToolBarがドラッグ・アウト状態になった場合、そのLayoutManagerを変更する
JToolBar
がドラッグ・アウト状態になった場合、そのLayoutManager
をデフォルトのBoxLayout
からGridLayout
に変更します。
Componentの3列配置、中央幅固定、左右均等引き伸ばしを行うLayoutManagerを作成する
Componentの3列配置、中央幅固定、左右均等引き伸ばしを行うLayoutManagerを作成する
Component
を3
列配置し、中央は常に幅固定、左右は均等に水平引き伸ばしを行うLayoutManager
を作成します。
JPanelに追加したコンポーネントの順序を変更する
JPanelに追加したコンポーネントの順序を変更する
JPanel
内のコンポーネントのZ
軸順インデックスを変更してその表示順序を変更します。
GridBagLayoutを使ってJButtonをキーボード状に配置する
GridBagLayoutを使ってJButtonをキーボード状に配置する
GridBagLayout
を使用してJButton
をキーボード状に配置します。
GridLayout内でのセル位置を取得する
GridLayout内でのセル位置を取得する
GridLayout
を設定したJPanel
内に配置したJButton
をクリックしたときそのセル位置を取得します。
↑40 ↓41
JEditorPaneのミニマップを表示する
JEditorPaneのミニマップを表示する
JEditorPane
のミニマップをImageIcon
で作成し、これをLayoutManager
を使用してJScrollPane
上に重ねて表示します。
JPanelの子コンポーネントを水平方向で折り返す
JPanelの子コンポーネントを水平方向で折り返す
JPanel
に配置した子コンポーネントを水平方向で折り返し、またそれらの水平間隔を動的に均等になるよう拡大します。
CardLayoutの前後のカードを左右に表示する
CardLayoutの前後のカードを左右に表示する
CardLayout
を設定したContainer
からカレントカードの前後に存在するカードを取得し、半透明でカレントカードの左右に表示します。
CardLayoutを設定したパネル上にOverlayLayoutでカード切り替え用のJComboBoxを配置する
CardLayoutを設定したパネル上にOverlayLayoutでカード切り替え用のJComboBoxを配置する
CardLayout
を設定したパネルの内部にそのカード切り替え用のJComboBox
をOverlayLayout
で重ねて配置します。
JMenuから開くポップアップウィンドウのレイアウトを2列に変更する
JMenuから開くポップアップウィンドウのレイアウトを2列に変更する
JMenu
をクリックして開くポップアップウィンドウのレイアウトをGridLayout
に変更してJMenuItem
などを2
列で表示します。
JSeparatorで段落罫線を描画する
JSeparatorで段落罫線を描画する
GridLayout
などで作成した列の間に罫線としてJSeparator
を描画します。
CardLayoutで作成したJTabbedPane風コンポーネントのタブエリアに水平JScrollBarを表示する
CardLayoutで作成したJTabbedPane風コンポーネントのタブエリアに水平JScrollBarを表示する
CardLayout
を使用してJTabbedPane
風のコンポーネントを作成し、そのタブエリアに水平JScrollBar
を表示してスクロール可能にします。
LayoutManagerを実装して常に中央に子コンポーネントを配置する
LayoutManagerを実装して常に中央に子コンポーネントを配置する
LayoutManager
を実装して子コンポーネントのサイズを推奨サイズに設定し、位置を常に中央になるよう配置します。
JTabbedPaneのタブエリアレイアウトを変更して一覧表示ボタンなどを追加する
JTabbedPaneのタブエリアレイアウトを変更して一覧表示ボタンなどを追加する
JTabbedPane
のタブエリアレイアウトを変更して余白や右端にタブの一覧表示ボタンなどを追加します。
TitledBorderの背景色を設定する
TitledBorderの背景色を設定する
TitledBorder
を背景色を変更する方法をテストします。
JRadioButtonの選択アイコンを除いたテキスト先頭をJLabelと揃える
JRadioButtonの選択アイコンを除いたテキスト先頭をJLabelと揃える
JRadioButton
やJCheckBox
の選択アイコンを除いたテキスト先頭が垂直配置したJLabel
のテキスト先頭と揃うよう配置します。
JToolBarの配置位置によってJToolTipの表示方向を切り替える
JToolBarの配置位置によってJToolTipの表示方向を切り替える
JToolBar
の配置位置、縦横の方向、言語依存の方向によって内部に配置したJButton
のJToolTip
表示位置が常に内側になるよう切り替えます。
JMenuBarのレイアウトを変更して垂直方向にJMenuを配置する
JMenuBarのレイアウトを変更して垂直方向にJMenuを配置する
JMenuBar
のレイアウトを垂直BoxLayout
に変更してJMenu
を垂直方向に並べて配置するサイドバーを作成します。