JMenuItems 不显示在 JDialog 中

发布于 2024-12-07 04:06:19 字数 818 浏览 1 评论 0原文

这可能是一个愚蠢的问题,但我就是看不到!我有使用弹出菜单的 Swing 应用程序。它工作正常,但我想让菜单持久化(即直到我关闭它)。我基本上已将 JPopupMenu 更改为 JDialog,并且我得到了 JDialog 面板,但菜单项是不可见的!这可能是非常明显的事情,所以我可能会感到尴尬!这是代码的一部分:

  JDialog buildNewItemMenu(DrawFBP base) {
    JDialog jd = new JDialog();
    jd.setSize(200, 300);
    JMenuItem menuItem = null;
    JLabel label2 = new JLabel();
    label2.setForeground(Color.BLUE);
    JMenu menu = new JMenu();       
    jd.add(menu);       
    jd.setVisible(true);
    menu.setVisible(true);
    menu.add(label2);
    menu.addSeparator();
    menuItem = new JMenuItem("Component");
    menuItem.addActionListener(base);
    menu.add(menuItem);
    ....
    menu.addSeparator();
    menuItem = new JMenuItem("Enclosure");
    menuItem.addActionListener(base);
    menu.add(menuItem);     
    return jd;

This is probably a dumb question, but I just can't see it! I have Swing app that uses a popup menu. It works fine, but I want to make the menu persistent (i.e. until I close it). I have basically changed the JPopupMenu to JDialog, and I am getting the JDialog panel, but the menu items are invisible! It's probably something very obvious, so I'll probably be embarrassed! Here is part of the code:

  JDialog buildNewItemMenu(DrawFBP base) {
    JDialog jd = new JDialog();
    jd.setSize(200, 300);
    JMenuItem menuItem = null;
    JLabel label2 = new JLabel();
    label2.setForeground(Color.BLUE);
    JMenu menu = new JMenu();       
    jd.add(menu);       
    jd.setVisible(true);
    menu.setVisible(true);
    menu.add(label2);
    menu.addSeparator();
    menuItem = new JMenuItem("Component");
    menuItem.addActionListener(base);
    menu.add(menuItem);
    ....
    menu.addSeparator();
    menuItem = new JMenuItem("Enclosure");
    menuItem.addActionListener(base);
    menu.add(menuItem);     
    return jd;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦巷 2024-12-14 04:06:19

我想我会关闭它 - 正如我在评论中所说,将 JMenu 更改为 JPanel 并添加

  panel.setLayout(new BoxLayout(panel, BoxLayout.PAGE_AXIS)); 

修复了问题,但我计划以不同的方式解决问题。无论如何,谢谢!

I think I will close this - as I said in the comment, changing the JMenu to a JPanel and adding

  panel.setLayout(new BoxLayout(panel, BoxLayout.PAGE_AXIS)); 

fixed the problem, but I plan to tackle the problem a different way. Thanks anyway!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文