2015-02-05 72 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

相關問題