簡體   English   中英

如何建立良好的Java GUI應用程序設計模式?

[英]How to build a good Java GUI application design pattern?

我想知道有關Java GUI面板編程的一種好方法。 我主要關心的是方法,面板,標簽,偵聽器,初始化-在哪里?

我應該在哪里放置這些東西,我如何將它們放置在面板和包裝紙之間(也許也是控制器)。

假設我必須使用包含一些按鈕的MenuPanelWrapper來對MenuPanel進行編程。 如何以最佳方式做到這一點?

我認為創建某些Java UI的最佳方法是使用MVC (模型-視圖-控制器)模式。

假設:在Java UI中有一個JButtonJLabelJTextField ,如下所示:

MVC步驟1

左邊是UI ,右邊是MVC的設計。 在此UI中,用戶可以在JTextField中放置一些文本,並通過按下JButton在JLabel中顯示它。

  • 視圖包含JLabel,因為視圖代表模型的數據。 (在某些情況下,View也可以通過隱藏或添加一些操作來刷新UI:例如隱藏/添加一些JButton或刪除一些偵聽器)。
  • 模型包含要顯示的數據,並檢索控制器發送的數據。 該模型在用戶界面中不直接可見。 這就像一個黑匣子,我們可以通過Controler對其進行操作,並通過View查看其數據。
  • 控件包含JButton和JTextField。 控制器將更改模型的值,並且模型將警告視圖刷新自身(在本例中為JLabel)。

第1步

現在,如果用戶更改JTextField的值,這將影響Controler的JtextField。

MVC步驟2

第2步

如果用戶按下JButton,則控制程序將通過調用Model的setter來更改Model.valueLabel的值。

MVC步驟3

第三步

在這一步, 模型將通知其視圖 Model.valueLabel的值已更改。 並且View將刷新自己(通過更改JLabel的值)。 最后,JLabel顯示數據Model的值。

MVC步驟4

步驟4- 在某些情況下

視圖完成刷新后,他可以通過添加或禁用某些操作來刷新Controler

MVC步驟5


編輯

PS:有時,視圖和控件在一起 ,當我們無法將視圖和控件分開時,它更像是Model和ViewControler。

暫無
暫無

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

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