是否可以在 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 边框上添加菜单?的主要内容,如果未能解决你的问题,请参考以下文章