---
title: LayoutManager
tags: [LayoutManager, BorderLayout, GridLayout, GridBagLayout, SpringLayout, BoxLayout, GroupLayout]
description: GridBagLayout、SpringLayout、BoxLayoutなどのレイアウトマネージャー関係の記事へのスクリーンショット付きリンク一覧
---
このページでは、`GridBagLayout`、`SpringLayout`、`BoxLayout`といったレイアウトマネージャー関係の使い方を集めて一覧にしています。

#contents

* Layout [#Layout]
** DynamicLayoutでレイアウトの動的評価 [#DynamicLayout]
#swingdescription(Swing/DynamicLayout,DynamicLayoutでレイアウトの動的評価,ウィンドウのリサイズなどに応じてレイアウトを再評価するように、DynamicLayoutを設定します。,https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTMDyaDeJI/AAAAAAAAAYk/-EIAq3TyJbw/s144/DynamicLayout.png)

** JButtonの高さを変更せずに幅を指定 [#ButtonWidth]
#swingdescription(Swing/ButtonWidth,JButtonの高さを変更せずに幅を指定,高さはデフォルトのまま幅だけを指定して、JButton、JComboBox、JTextFieldなどのサイズを変更します。,https://lh5.googleusercontent.com/-B3A8vHPu9_I/UmY7hTtdmtI/AAAAAAAAB4s/7NknsHc_vwI/s144/ButtonWidth.png)

** BoxLayoutでリスト状に並べる [#ComponentList]
#swingdescription(Swing/ComponentList,BoxLayoutでリスト状に並べる,高さの異なるコンポーネントをスクロールできるようにリスト状に並べます。,https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTJ_UDZVaI/AAAAAAAAAVQ/BbW1hLhenS8/s144/ComponentList.png)

** ImageIconの形でJButtonを作成 [#RoundImageButton]
#swingdescription(Swing/RoundImageButton,ImageIconの形でJButtonを作成,任意のShapeとその形に透過色を設定した画像を使ってJButtonを作成します。,https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTSO4fquKI/AAAAAAAAAic/UdMAZSREN1U/s144/RoundImageButton.png)

** SpringLayoutの使用 [#SpringLayout]
#swingdescription(Swing/SpringLayout,SpringLayoutの使用,SpringLayoutを使用して、各ラベルのサイズとパネルからの距離が一定の比率になるような配置を指定します。,https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTTwX9UR-I/AAAAAAAAAk8/TLNZjmIrPnw/s144/SpringLayout.png)

** GridBagLayoutの使用 [#GridBagLayout]
#swingdescription(Swing/GridBagLayout,GridBagLayoutの使用,GridBagLayoutを使用して、左右の部品のサイズを固定、中央だけは水平方向に伸縮可になるよう配置します。,https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTNi4XckaI/AAAAAAAAAa8/8VJwvf6EScw/s144/GridBagLayout.png)

** GridBagLayoutを使ってレンガ状に配置 [#BrickLayout]
#swingdescription(Swing/BrickLayout,GridBagLayoutを使ってレンガ状に配置,GridBagLayoutを使ってコンポーネントをレンガ状に配置します。,https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTIOzg1doI/AAAAAAAAASc/V_SwABvAldE/s144/BrickLayout.png)

** GroupLayoutの使用 [#GroupLayout]
#swingdescription(Swing/GroupLayout,GroupLayoutの使用,JDK 6で新しく導入されたGroupLayoutとGridBagLayoutを比較しています。,https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTNn9AdVUI/AAAAAAAAAbE/yOFdtRVr6P4/s144/GroupLayout.png)

** OverlayLayoutの使用 [#OverlayLayout]
#swingdescription(Swing/OverlayLayout,OverlayLayoutの使用,OverlayLayoutを使用し、JButtonを重ねて配置します。,https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTQqzbG85I/AAAAAAAAAf8/GAYWzSVrHvg/s144/OverlayLayout.png)

** JTabbedPaneの余白にJButtonを配置 [#TabbedPaneWithButton]
#swingdescription(Swing/TabbedPaneWithButton,JTabbedPaneの余白にJButtonを配置,JTabbedPaneのタブエリアに余白を作成し、そこにOverlayLayoutを使ってJButtonを配置します。,https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTUOdUT3wI/AAAAAAAAAls/N2JYE_Dcr_Y/s144/TabbedPaneWithButton.png)

* ↑10 ↓11 [#ha479a96]
#adsensebar

** CardLayoutを使ってJTabbedPane風のコンポーネントを作成 [#CardLayoutTabbedPane]
#swingdescription(Swing/CardLayoutTabbedPane,CardLayoutを使ってJTabbedPane風のコンポーネントを作成,CardLayoutとJRadioButtonやJTableHeaderを組み合わせてJTabbedPane風のコンポーネントを作成します。,https://lh3.googleusercontent.com/-i_zX5mZNCL0/VZBOp7c2kwI/AAAAAAAAN74/yEHMZL9l8xs/s144/CardLayoutTabbedPane.png)

** JTabbedPane風のタブ配置をレイアウトマネージャーで変更 [#NewTabButton]
#swingdescription(Swing/NewTabButton,JTabbedPane風のタブ配置をレイアウトマネージャーで変更,CardLayoutとJRadioButtonで作成したJTabbedPane風コンポーネントのタブ配置を自作レイアウトマネージャーで変更します。,https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTQUU8wtpI/AAAAAAAAAfY/BJyG5weJ1VA/s144/NewTabButton.png)

** LayoutManagerを使ってパネルの展開アニメーションを行う [#LayoutAnimation]
#swingdescription(Swing/LayoutAnimation,LayoutManagerを使ってパネルの展開アニメーションを行う,パネルの展開・収納をアニメーションで行うLayoutManagerを作成します。,https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTO_fTHG-I/AAAAAAAAAdQ/9SHzG18aVW0/s144/LayoutAnimation.png)

** JMenuBarのJMenuを折り返し [#MenuBarLayout]
#swingdescription(Swing/MenuBarLayout,JMenuBarのJMenuを折り返し,JMenuBarのレイアウトマネージャーを変更して、JMenuを折り返して表示します。,https://lh5.googleusercontent.com/_9Z4BYR88imo/TRf4-liTfjI/AAAAAAAAAwk/CURxxE6iDqk/s144/MenuBarLayout.png)

** JTextAreaをキャプションとして画像上にスライドイン [#EaseInOut]
#swingdescription(Swing/EaseInOut,JTextAreaをキャプションとして画像上にスライドイン,画像の上にJTextAreaをスライドインアニメーションで表示します。,https://lh4.googleusercontent.com/_9Z4BYR88imo/Tcd9MqA6BlI/AAAAAAAAA64/Q7KLCkUETZ4/s144/EaseInOut.png)

** LayoutManagerを拡張して曲線上にコンポーネントを配置 [#CurveLayout]
#swingdescription(Swing/CurveLayout,LayoutManagerを拡張して曲線上にコンポーネントを配置,LayoutManagerを拡張して曲線上にコンポーネントを配置します。,https://lh4.googleusercontent.com/-Rww2mulIVEI/TggO-rFh_2I/AAAAAAAAA98/R3ZVsfyu3IU/s144/CurveLayout.png)

** Borderの右下にJComponentを配置 [#RightAlignComponentBorder]
#swingdescription(Swing/RightAlignComponentBorder,Borderの右下にJComponentを配置,SpringLayoutを設定したJLayeredPaneを使って、Borderの右下にJComponentを配置します。,https://lh5.googleusercontent.com/-IPUQvbcJ2NM/TsjbIEMsMeI/AAAAAAAABE8/Fg16E6wkLtY/s144/RightAlignComponentBorder.png)

** JProgressBarの進捗文字列の字揃えを変更する [#ProgressStringAlignment]
#swingdescription(Swing/ProgressStringAlignment,JProgressBarの進捗文字列の字揃えを変更する,JProgressBarの進捗文字列をJLabelにして、字揃えなどを変更します。,https://lh5.googleusercontent.com/-zRMPjXT7do4/T3lYdJUnilI/AAAAAAAABLA/kcpMYSYoklM/s144/ProgressStringAlignment.png)

** GridLayoutとJScrollPaneを使ったグリッド単位での表示切り替え [#GridScrollAnimation]
#swingdescription(Swing/GridScrollAnimation,GridLayoutとJScrollPaneを使ったグリッド単位での表示切り替え,JPanelにGridLayoutでコンポーネントを追加し、これをJScrollPaneに配置して、グリッド単位での表示、スクロールアニメーションによる切り替えを行います。,https://lh4.googleusercontent.com/-V2E4xmdHmBE/UCiUOuOlrLI/AAAAAAAABQg/IYqzH9-WdsI/s144/GridScrollAnimation.png)

** OverlayLayoutで複数のJButtonを重ねて複合ボタンを作成 [#CompoundButton]
#swingdescription(Swing/CompoundButton,OverlayLayoutで複数のJButtonを重ねて複合ボタンを作成,4つの扇形ボタンと円形ボタンを、OverlayLayoutを設定したJPanelに配置して、複合ボタンを作成します。,https://lh6.googleusercontent.com/-0bLp9wWHHOw/ULIxE5DUtzI/AAAAAAAABX4/pRUF7k-l4D0/s144/CompoundButton.png)

* ↑20 ↓21 [#f403fc00]
#adsensebar

** JScrollBarを半透明にする [#TranslucentScrollBar]
#swingdescription(Swing/TranslucentScrollBar,JScrollBarを半透明にする,半透明のJScrollBarを作成して、JViewport内部に配置します。,https://lh3.googleusercontent.com/-X8o390yxqhI/UZjhjkgUrkI/AAAAAAAABsY/Aajtim-5-uE/s144/TranslucentScrollBar.png)

** JMenuItemの内部にJButtonを配置する [#ButtonsInMenuItem]
#swingdescription(Swing/ButtonsInMenuItem,JMenuItemの内部にJButtonを配置する,JMenuItemの内部に切り取り、コピー、貼り付けを行うJButtonを配置します。,https://lh6.googleusercontent.com/-aY1o9VhHFWI/UpHzycRD8gI/AAAAAAAAB64/jaFbU_zn7hI/s144/ButtonsInMenuItem.png)

** FlowLayoutでボタンを重ねてパンくずリストを作成する [#BreadcrumbList]
#swingdescription(Swing/BreadcrumbList,FlowLayoutでボタンを重ねてパンくずリストを作成する,FlowLayoutの水平間隔をマイナスにして、JRadioButtonを重ねて表示し、パンくずリスト風のコンポーネントを作成します。,https://lh5.googleusercontent.com/-aKK_2LaPfVQ/UpsqWSS4lUI/AAAAAAAAB7c/VSzPRuRu3IY/s144/BreadcrumbList.png)

** JPopupMenuのレイアウトを変更して上部にメニューボタンを追加する [#PopupMenuLayout]
#swingdescription(Swing/PopupMenuLayout,JPopupMenuのレイアウトを変更して上部にメニューボタンを追加する,JPopupMenuのレイアウトを変更することで、上部にメニューボタンを水平に並べて表示します。,https://lh6.googleusercontent.com/-puZjATgiuLQ/VCgMaUlMzLI/AAAAAAAACN0/PkEeTJkX7Hg/s144/PopupMenuLayout.png)

** JPasswordFieldでパスワードを可視化する [#ShowHidePasswordField]
#swingdescription(Swing/ShowHidePasswordField,JPasswordFieldでパスワードを可視化する,JPasswordFieldに入力したパスワードの表示・非表示を切り替えるためのボタンを作成し、これを入力欄などに配置します。,https://lh5.googleusercontent.com/-zXk3TZfF_v4/VPXFdo3UBzI/AAAAAAAANzU/VfiEUdm-aUI/s144/ShowHidePasswordField.png)

** BoxLayoutでJLabelの中央揃えをテストする [#BoxLayoutAlignment]
#swingdescription(Swing/BoxLayoutAlignment,BoxLayoutでJLabelの中央揃えをテストする,BoxLayoutを設定したJPanelに、最小サイズを設定したJLabelを中央揃えで配置するテストを行います。,https://lh4.googleusercontent.com/-OKh2kmuDUus/VMUE-LLN_NI/AAAAAAAANvk/FtPEqk8f820/s144/BoxLayoutAlignment.png)

** JDesktopPane内のJInternalFrameをJTabbedPaneのタブと入れ替える [#SwapInternalFramesWithTabs]
#swingdescription(Swing/SwapInternalFramesWithTabs,JDesktopPane内のJInternalFrameをJTabbedPaneのタブと入れ替える,JDesktopPaneとJTabbedPaneをCardLayoutで切り替えるとき、その内部のJInternalFrameとタブもすべて入れ替えます。,https://lh4.googleusercontent.com/-mNR8hjjt8Ao/VSp_fRS8WZI/AAAAAAAAN2Y/rTsBE6-6Ekg/s144/SwapInternalFramesWithTabs.png)

** JToggleButtonをFlowLayoutで重ねて表示する [#BackgroundButtonIcon]
#swingdescription(Swing/BackgroundButtonIcon,JToggleButtonをFlowLayoutで重ねて表示する,ボタンテキストが左揃えの非矩形JToggleButtonをFlowLayoutを使って任意の幅だけ重ねて配置します。,https://lh3.googleusercontent.com/-1OUh7yWnn3o/VUZELyRwR_I/AAAAAAAAN3s/ZgylrxCIOjQ/s144/BackgroundButtonIcon.png)

** JTableHeaderで作成したタブエリアでCardLayoutのコンテナを切り替える [#TableHeaderTabArea]
#swingdescription(Swing/TableHeaderTabArea,JTableHeaderで作成したタブエリアでCardLayoutのコンテナを切り替える,JTableHeaderをタブエリアとして使用し、TableColumnをクリックするとCardLayoutのコンテナが切り替わるようにマウスリスナーを設定します。,https://lh3.googleusercontent.com/-ZfZAc1Xgx9Q/VZBDTAXsteI/AAAAAAAAN7c/VEw9Z6haOP0/s144/TableHeaderTabArea.png)

** Component上に重ねて配置したダイアログの表示状態をアニメーション付きで切り替える [#OverlayBorderLayout]
#swingdescription(Swing/OverlayBorderLayout,Component上に重ねて配置したダイアログの表示状態をアニメーション付きで切り替える,Component上に重ねて配置した検索用ダイアログの位置をアニメーション付きで変更するレイアウトマネージャを作成し、その表示非表示をキー入力で切り替えます。,https://lh3.googleusercontent.com/-gEMKmLyIHno/VcgZ2tpTyMI/AAAAAAAAN-0/HLb8wuLN_LE/s800-Ic42/OverlayBorderLayout.png)

* ↑30 ↓31 [#v21aad8f]
#adsensebar

** LayoutManagerでコンポーネントのサイズを変更する [#SizeLayoutManager]
#swingdescription(Swing/SizeLayoutManager,LayoutManagerでコンポーネントのサイズを変更する,LayoutManagerを使用して、コンポーネントの状態に応じてそのサイズや位置を変更します。,https://drive.google.com/uc?id=1nYydwcffL9ElwLnTcopf0y05pAU6chdG4w)

** JFileChooserのファイル名とフィルタのラベルを右揃えに変更する [#FileChooserFileAndFilterAlignment]
#swingdescription(Swing/FileChooserFileAndFilterAlignment,JFileChooserのファイル名とフィルタのラベルを右揃えに変更する,JFileChooserの下部に表示されるファイル名とフィルタのラベルを左揃えから右揃えに変更します。,https://drive.google.com/uc?id=1U4T22tNO7N5NZJUDujh3ZUh68fe-xyvbPw)

** JTreeとCardLayoutでサイドメニューを作成する [#VerticalNavigationMenu]
#swingdescription(Swing/VerticalNavigationMenu,JTreeとCardLayoutでサイドメニューを作成する,JTreeのスタイルを変更してサイドメニュー風のコンポーネントを作成し、ノード選択に応じてCardLayoutでのパネル切り替えを実行します。,https://drive.google.com/uc?id=1HtdjEFvmcBet6Qv2s2zHMZWTgzkb2rcqqQ)

** JLabelの最大幅を共有して異なるパネル間で垂直位置を揃える [#AlignedLabel]
#swingdescription(Swing/AlignedLabel,JLabelの最大幅を共有して異なるパネル間で垂直位置を揃える,JLabelの垂直位置を異なるパネル間でも揃えるため、最大幅のJLabelを検索してこれをすべての推奨サイズとして使用します。,https://drive.google.com/uc?id=1OYxUdKX7mxvEzkX5pjBjy2IFjYRLtfmKMw)

** JListからの大量アイテム削除を高速化する [#FastRemoveOfListItems]
#swingdescription(Swing/FastRemoveOfListItems,JListからの大量アイテム削除を高速化する,JListのListModelからの大量のアイテムを高速に削除する方法をテストします。,https://drive.google.com/uc?id=1w4uURJH6pPCGk68BT_XlCjxnZQlOxv1n7w)

** JToolBarがドラッグ・アウト状態になった場合、そのLayoutManagerを変更する [#FloatingToolBarLayout]
#swingdescription(Swing/FloatingToolBarLayout,JToolBarがドラッグ・アウト状態になった場合、そのLayoutManagerを変更する,JToolBarがドラッグ・アウト状態になった場合、そのLayoutManagerをデフォルトのBoxLayoutからGridLayoutに変更します。,https://drive.google.com/uc?id=1uL2dBULFxMkMRittTE2gFqo910igMoCZ9A)
#swingdescription(Swing/FloatingToolBarLayout,JToolBarがドラッグ・アウト状態になった場合、そのLayoutManagerを変更する,JToolBarがドラッグ・アウト状態になった場合、そのLayoutManagerをデフォルトのBoxLayoutからGridLayoutに変更します。,https://drive.google.com/uc?id=1C5Cd9XW5NYoQba530bfzr0nsstb407QGwA)