簡體   English   中英

如何從JPanel類訪問JFrame組件?

[英]How to access JFrame components from a JPanel class?

我正在做一個GUI分配,遇到一個我無法弄清楚的問題。 我有一個帶有多個JPanel的JFrame,其中一個JPanels包含一個帶有多個JPanels的CardLayout。 由於我們在該項目上工作的人更多,因此我們決定為將要在CardLayout中使用的每個面板制作一個單獨的類(擴展了JPanel)。

問題是從JPanel類訪問JFrame的組件。

舉個例子,我在JFrame的某個地方有一個JLabel用作狀態欄,並且我想在按下SaleMain面板上的按鈕時更改狀態欄的文本(該類擴展了JPanel,包含在CardLayout)。

另一個示例,在另一個面板EditCustomer(也是CardPad中的JPanel類)內,我想有一個帶有動作監聽器的按鈕,它將當前面板(包含按鈕的面板)更改為與面板不同的面板。 CardLayout。

希望我說得盡可能清楚,謝謝大家對我的幫助:)

模型/視圖/控制器模式 (MVC)對於創建GUI很有用。 通過將模型從視圖中分離出來,您可以一次專注於GUI的一部分。

您為GUI創建一個模型,其中包含要在GUI上顯示的信息。

我在JFrame的某個位置有一個JLabel,它用作狀態欄,並且我想在SaleMain面板上按下按鈕時更改狀態欄的文本

將文本放入模型中,並在按鈕的動作偵聽器中,將文本放入狀態欄中。

我想要一個帶有動作偵聽器的按鈕,它將當前面板(包含該按鈕的面板)更改為CardLayout以外的面板。

然后這樣做。 動作偵聽器是可以更改視圖的控制器。

看一下我的文章Dice Game ,看看Java Swing應用程序如何實現MVC模式和JPanel切換。

暫無
暫無

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

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