Java swing:如何在行和列中对齐菜单项?

gum*_*ruh 2 java swing menu items

创建菜单栏及其项目时我没有遇到任何麻烦.但现在,当我得到一个问题如何使菜单项显示为列和行状表格时,我真的不知道这一点.

目标是使用java创建这种菜单项. 检查此链接.

现在,我只是认为我应该使用jpanel作为菜单项,然后应用flowlayout然后添加许多jlabel(s),就像我在网格中的menuitem一样.但不是最糟糕的吗?创建菜单项的最佳优惠是什么,例如上面链接中的图像预览?

我试过谷歌,但没有发现相关案例.CMIIW.

Ing*_*gel 6

JMenu实例的弹出菜单是标准容器,因此您可以随意添加它.它有一个默认布局,但您可以更改它.

你的模型中的东西是由这段代码创建的:

import javax.swing.*;
import java.awt.*;

public class Test {
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                JFrame frame = new JFrame("Menu test");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setSize(new Dimension(600, 400));
                JMenuBar menuBar = new JMenuBar();
                JMenu menu = new JMenu("Test");
                JPopupMenu popupMenu = menu.getPopupMenu();
                popupMenu.setLayout(new GridLayout(5, 5));
                for (int r = 0; r < 5; r++) {
                    for (int c = 0; c < 5; c++) {
                        popupMenu.add(new JMenuItem("(" + (r + 1) + ", " + (c + 1) + ")"));
                    }
                }

                menuBar.add(menu);
                frame.setJMenuBar(menuBar);

                frame.setVisible(true);
            }
        });
    }

}
Run Code Online (Sandbox Code Playgroud)