是否可以在 JFrame 边框上添加菜单?

Posted

技术标签:

【中文标题】是否可以在 JFrame 边框上添加菜单?【英文标题】:Is it possible to add a menu on JFrame border? 【发布时间】:2016-06-22 07:04:45 【问题描述】:

我有一个 Surface Pro 3,我的大部分编码工作都是用它来完成的。我相信从 micosoft 商店下载的所有应用程序的菜单栏都位于 Windows 应用程序的左上角边框。目前我正在使用 Java 开发一个 Windows 应用程序,并希望我的设计有 3 个栏(菜单)左上角的 JFrame 边框的顶部。我用谷歌搜索了它,只发现少数人试图做同样的事情,所有人都被告知使用 JFrame 是不可能的。如果是这种情况,我应该如何制作自己的组件来真正做到这一点?

我不介意,花费数小时和数天来开发它。因为一旦我可以创建它的库,它将非常有用。

【问题讨论】:

您可以通过调用frame.setUndecorated(true) 使您的JFrame 不修饰,这将去掉标题栏和大小等。然后您可以根据需要添加修饰,包括菜单。跨度> 【参考方案1】:

如果我理解你的问题,你认为这样的菜单?

import javax.swing.*;

public class Menu 
public static void main (String[] args) 
    JFrame frame = new JFrame();
    frame.setSize(500, 300);

    JMenuBar menuBar = new JMenuBar();
    JMenu menu1 = new JMenu("menu1");
    JMenu menu2 = new JMenu("menu2");
    JMenu menu3 = new JMenu("menu3");
    menuBar.add(menu1);
    menuBar.add(menu2);
    menuBar.add(menu3);

    frame.setJMenuBar(menuBar);
    frame.setUndecorated(true);     
    frame.setVisible(true);


这里是picture。

【讨论】:

我已经运行了代码,看起来就像我想做的那样。但唯一的问题是最右边的最小化、最大化和关闭按钮不会显示。 检查这个,也许会有所帮助link

以上是关于是否可以在 JFrame 边框上添加菜单?的主要内容,如果未能解决你的问题,请参考以下文章

将菜单栏添加到 JFrame

在不同的图形环境中查找JFrame标题和边框的大小

是否可以使用引导程序将边框添加到单独行内的 col

并排的两个 JFrame

如何在菜单栏中设置列表边框的图像?

java中菜单栏里的选项怎么点一下换一个界面,就在那个jframe里打开增加用户的界面。