Swing/TwoColumnsMenu のバックアップソース(No.2)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- バックアップ を表示
- Swing/TwoColumnsMenu へ行く。
- 1 (2021-08-09 (月) 13:57:16)
- 2 (2021-08-09 (月) 14:58:48)
- 3 (2021-08-10 (火) 10:44:28)
- 4 (2023-08-27 (日) 21:39:28)
- 5 (2023-09-15 (金) 12:49:02)
--- category: swing folder: TwoColumnsMenu title: JMenuから開くポップアップウィンドウのレイアウトを2列に変更する tags: [JMenu, JMenuBar, JPopupMenu, GridLayout] author: aterai pubdate: 2021-08-09T13:56:12+09:00 description: JMenuをクリックして開くポップアップウィンドウのレイアウトをGridLayoutを変更してJMenuItemなどを2列で表示します。 image: https://drive.google.com/uc?id=1WUozvYw68yZx1vvlEWPNmIrTO_-0wA6A --- * 概要 [#summary] `JMenu`をクリックして開くポップアップウィンドウのレイアウトを`GridLayout`を変更して`JMenuItem`などを`2`列で表示します。 #download(https://drive.google.com/uc?id=1WUozvYw68yZx1vvlEWPNmIrTO_-0wA6A) * サンプルコード [#sourcecode] #code(link){{ JMenu menu2 = new JMenu("LookAndFeel"); // LookAndFeelUtil.createLookAndFeelMenu(); menu2.getPopupMenu().setLayout(new GridLayout(0, 2, 2, 0)); menu2.add("Metel"); menu2.add("Nimbus"); menu2.add("CDE/Motif"); menu2.add("Widows"); menu2.add("Widows Classic"); }} * 解説 [#explanation] - `JMenu#getPopupMenu()`メソッドでポップアップウィンドウ(`JPopupMenu`)を取得 - `JPopupMenu#setLayout(new GridLayout(0, 2, 2, 0));`でレイアウトをデフォルトの`BoxLayout`から`2`列の`GridLayout`に変更し、`JMenuItem`や`JRadioButtonMenuItem`などの表示を`2`列に変更 -- [[JPopupMenuをボタンの長押しで表示>Swing/PressAndHoldButton]] - `JSeparator`を追加しても段抜きにはならないので、その場合は`GridBagLayout`などを使用する必要がある -- [[JPopupMenuのレイアウトを変更して上部にメニューボタンを追加する>Swing/PopupMenuLayout]] * 参考リンク [#reference] - [[JPopupMenuをボタンの長押しで表示>Swing/PressAndHoldButton]] - [[JPopupMenuのレイアウトを変更して上部にメニューボタンを追加する>Swing/PopupMenuLayout]] - [https://stackoverflow.com/questions/7913938/java-swing-how-to-align-menu-items-in-rows-and-columns Java swing: how to align menu items in rows and columns? - Stack Overflow] * コメント [#comment] #comment #comment