【问题标题】:How to add custom menu action and titlebar icon to JFrame如何将自定义菜单操作和标题栏图标添加到 JFrame
【发布时间】:2015-02-05 17:13:02
【问题描述】:

我有一个自定义的 JFrame。在标题栏上,我在左上角有一个图标、一个标题,然后在右侧有标准的最小化、最大化和关闭按钮。

当我单击标题栏中的图标时,我会看到标准选项:恢复、移动、大小、最小化、最大化、关闭。

如何在此处添加我自己的菜单选项?我想在此处添加“始终在最前面”选项。

此外,我想在标题栏上的最大、最小、关闭按钮旁边添加一个按钮,以允许用户切换 JFrame 的“始终在顶部”状态。

【问题讨论】:

    标签: java button jframe menuitem


    【解决方案1】:

    您可以创建自己的自定义组件。为此,请创建一个新类,例如 extends JMenuBar 并覆盖适合您需要的方法。很多时候,例如,一个人想要覆盖paintComponent(Graphics)

    这不是你想要的,'虽然。自定义 JMenuBar 不会像您期望的那样工作。 “JMenuBar”是标题栏下方的另一个栏。我是 Mac 用户,但据我所知,不可能自定义 title 栏,因为 JVM 不处理它。唯一可以在不使用本机代码的情况下修改的是左上角的图标。

    有关这方面的更多信息,请查看this question 以及那里的最佳答案。这将对您有很大帮助。

    您的问题(在顶部添加一个用于切换alwaysOnTop 状态的按钮)最好通过创建 JMenuBar、JMenu 和 JMenuItem 的普通实例来解决。 然后将该菜单栏添加到您的框架中,请使用JFrame.setJMenuBar(JMenuBar)。另见How to use Menus

    我希望这会有所帮助!

    【讨论】:

    • 如何将此 JMenuBar 附加到我的 JFrame?
    • 其实我写的完全是废话。您可以创建某些组件的子类,但这并不是必需的,因为无论如何您都无法更改 title 栏。并且自定义 MenuBar 对可用性没有实际影响。
    • 我认为我的帖子现在应该以正确的方式解释一切。认真阅读this
    猜你喜欢
    • 1970-01-01
    • 2011-09-18
    • 2018-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多