• 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

概要

JMenuをクリックして開くポップアップウィンドウのレイアウトをGridLayoutを変更してJMenuItemなどを2列で表示します。

サンプルコード

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");
View in GitHub: Java, Kotlin

解説

  • JMenu#getPopupMenu()メソッドでポップアップウィンドウ(JPopupMenu)を取得
  • JPopupMenu#setLayout(new GridLayout(0, 2, 2, 0));でレイアウトをデフォルトのBoxLayoutから2列のGridLayoutに変更し、JMenuItemJRadioButtonMenuItemなどの表示を2列に変更
       - [[JPopupMenuをボタンの長押しで表示>Swing/PressAndHoldButton]]
  • JSeparatorを追加しても段抜きにはならないので、その場合はGridBagLayoutなどを使用する必要がある
       - [[JPopupMenuのレイアウトを変更して上部にメニューボタンを追加する>Swing/PopupMenuLayout]]

参考リンク

コメント