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

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

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

【问题讨论】:

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

标签: java windows jframe windows-applications menubar


【解决方案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
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 2018-03-15
相关资源
最近更新 更多