簡體   English   中英

另一個類中的Java ActionListener

[英]Java ActionListener in another Class

我正在嘗試使用Java Swing庫構建一個小型記事本應用程序。 我有一個主要函數,它調用JFrame (NotepadClass)的構造函數。 在這個NotepadClass我有一個MenuDesigner類,如下所示:

this.setJMenuBar(new MenuDesigner());

MenuDesigner類擴展了JMenuBar ,后者調用在另一個類中編寫的actionListener( MenuActionListener )。 現在我的問題是:如果我單擊“新建” menuItem ,則NotepadClass的標題應該更改。 如何訪問兩個級別的課程?

我應該使用哪種Java概念來完成此任務?

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

this.setJMenuBar(new MenuDesigner(notepadClass));

這就是為什么在構建GUI時最好擁有一個或多個模型類的原因之一。

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

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

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

為什么您的actionListener用於另一個類的菜單?

您可以創建一個implements ActionListener的新類,在其中可以添加自己的邏輯。 這樣,您可以在另一個文件中重用它。

另外,您可能應該通過將MenuDesigner類移動到其自己的文件中來MenuDesigner其耦合。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM