2012-12-31 50 views
0

我想使用Java Swing庫建立一個小的記事本應用程序。我有一個主要函數,它調用JFrame (NotepadClass)的構造函數。在這種NotepadClass我有一個MenuDesigner類是這樣的:在另一個類中的Java ActionListener

this.setJMenuBar(new MenuDesigner()); 

MenuDesigner類擴展JMenuBar這就要求這是寫在另一個類的ActionListener(MenuActionListener)。 現在我的問題是:如果我點擊「新」menuItemNotepadClass中的標題應該改變。我如何訪問兩個級別的課程?

我應該使用哪種Java概念來實現這個目標?

回答

0

您可以在構造函數中傳遞NotepadClass,並提供一種方法來更改標題。

另一種方法是在NotepadClass內部構建ActionListener,或讓NotepadClass自身實現Actionlistener接口,以便訪問變量或方法。

0

爲什麼你的菜單在另一個類中的actionListener?

您可以在create a new class that implements ActionListener中添加自己的邏輯。這樣你可以在另一個文件中重用它。

此外,您應該將您的MenuDesigner類移動到它自己的文件中去,

1

沒有看到你的代碼,很難給出一個明確的答案,但編寫一個單獨的類來建立你的菜單的原因之一是你可以傳遞實例給類。

this.setJMenuBar(new MenuDesigner(notepadClass)); 

這就是爲什麼在構建GUI時建立模型類或類是好的原因之一。

您可以將最高級別模型類的實例傳遞給所有GUI組件,並且每個組件都可以獲取或設置它們所代表的模型類的各個部分。的ActionListener

相關問題