2015-02-05 71 views
0

我有一个自定义JFrame。在标题栏上,我有一个左上角的图标,一个标题,然后是右侧的标准最小化,最大化和关闭按钮。如何将自定义菜单动作和标题栏图标添加到JFrame中

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

如何在此处添加我自己的菜单选项?我想在这里添加和“Always On Top”选项。

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

回答

0

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

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

欲了解更多信息,请看this question和那里的最佳答案。这会帮助你很多。

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

我希望这有助于!

+0

我该如何将JMenuBar附加到我的JFrame上? – 2015-02-09 20:19:31

+0

其实,我写的完全没有意义。你可以创建一些组件的子类,但是这并不是真正必要的,因为无论如何你都不能改变**标题栏。并且自定义MenuBar对可用性没有实际影响。 – 1Darco1 2015-02-09 21:57:56

+0

我认为,我的文章应该以正确的方式解释所有内容。真的阅读[this](http://stackoverflow.com/q/2482969/4498838)。 – 1Darco1 2015-02-10 07:49:38

相关问题