国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

基于Swing的圖書館系統XML框架

2019-11-18 15:42:09
字體:
來源:轉載
供稿:網友
簡介

  現在,市場是緊縮的。框架可以節省設計和開發階段的時間。IDE可以使得我們更輕易的開發用戶接口。標準的GUI應用程序用不同的面板布局來定義GUI,已成為一種根本的模式而存在。基于這個模式,考慮使用框架來提高執行速度,達到更高的并行處理程度,協調更寬松的開發方式。我們在這里就要用java SWING應用程序來描敘這么一個框架。



  簡單的應用程序-圖書館治理系統

  我們下面來討論一個簡單的圖書館治理系統,用來理解基于xml的GUI框架。

基于Swing的圖書館系統XML框架(圖一)


  上面的流程圖定義了圖書館用戶接口的設計。主目錄,會員登錄,用戶注冊和書籍檢索,這些都是應用程序中存在的面板(panel)。從流程圖可以看出,在應用程序中可能的處理路徑有下面幾種:

  主目錄->用戶注冊->書籍檢索
  主目錄->會員登錄->書籍檢索

  原則

  任何時候顯示的面板依靠于先前面板的輸出內容。因此,需要設計一個普通的控制器作為整個框架的窗體(form),它提供面板用來做必要的輸入,并處理面板中期待返回的輸出內容。這些面板都實現了XSFPanel接口,該接口中有個execute()方法用來將表單中的輸入內容存入一個HashMap中,并從另一個HashMap返回輸出內容。該框架的控制器處理使用HashMap返回的輸出內容,并隨時判定應該顯示哪個面板。

public interface XSFPanel extends JPanel
{
 public HashMap execute(HashMap inputs);
 . . .
}
控制器和XML流定義

  流控制器和一個簡單的定義著用戶接口的XML相關聯。這個XML必須基于每個面板輸入的內容和料想會輸出的內容而定義。我們這里討論的這個簡單的程序是基于下面的XML工作的。

<XFSFramework>
<XFSPanels>
<XFSPanel name="Home" class="library.Home">
<inputs/>
<outputs>
<output variable="userOption"/>
</outputs>
</XFSPanel>

<XFSPanel name="MemberLogin" class="library.MemberLogin">
 <inputs/>
 <outputs>
  <output variable="userName"/>
  <output variable="passWord"/>
 </outputs>
</XFSPanel>

<XFSPanel name="Registration" class="library.UserRegistration">
 <inputs/>
 <outputs>
  <output variable="userName"/>
  <output variable="password"/>
  <output variable="emailId"/>
  <output variable="address"/>
 </outputs>
</XFSPanel>

<XFSPanel name="Registration <inputs>
  <input variable="userName"/>
  <input variable="emailId"/>
  <input variable="address"/>
 </inputs>
 <outputs/>
</XFSPanel>

<XFSPanel name="searchBook" class="library.searchBook">
 <inputs/>
 <outputs>
  <output variable="criterion"/>
  <output variable="searchValue"/>
 </outputs>
</XFSPanel>

</XFSPanels>
<XFSPanelFlow>
 <step id="s1" from="Home" to="MemberLogin">
  <conditions>
   <condition variable="userOption" value="login"/>
  </conditions>
 </step>
 <step id="s2" from="Home" to="Registration">
  <conditions>
   <condition variable="userOption" value="newRegistration"/>
  </conditions>
 </step>
 <step id="s3" from="Registration" to="RegistrationPreview">
  <conditions/>
 </step>
 <step id="s4" from="MemberLogin" to="searchBook">
  <conditions>
   <condition variable="controller_loginResult" value="sUCcess"/>
  </conditions>
 </step>
 <step id="s5" from="RegistrationPreview" to="MemberLogin">
  <conditions>
   <condition variable="controller_accountCreationResult" value="success"/>
  </conditions>
 </step>

</XFSPanelFlow>
</XFSFramework>
  注重:這個XML僅僅被用來描敘框架。

  在上面的XML中,提及到所有實現了XFSPanel接口的面板。從一個面板出來的流信息到另一個面板。

  并發處理如何實現

  在這個使用框架開發的程序中,面板的開發者可以將經歷集中到如何表達信息而不用擔心用戶接口的流。一旦XML流被定義,許多開發者都能夠同時并發的在應用程序的各個不同面板上進行工作。

  如何協調更寬松的開發方式

基于Swing的圖書館系統XML框架(圖二)

  這個框架的一個重要特點是,新的面板將可以隨時被添加進程序中。現有面板的輸出也可以僅僅通過修改XML而改變。

  在我們的程序中,假如登錄的用戶是一個治理員,我們需要提供另一個用戶選項(user option),用來通過主目錄查看治理者的任務面板。這個只需要加上下面額外的代碼即可實現。

  以下代碼應該添加到XFSPanels中:



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 邛崃市| 抚松县| 岑溪市| 长沙市| 溆浦县| 汪清县| 曲水县| 江北区| 陇南市| 辽阳县| 四会市| 河池市| 久治县| 德昌县| 蓬溪县| 大渡口区| 广南县| 荃湾区| 蒙自县| 彭阳县| 澎湖县| 南城县| 会泽县| 大悟县| 若羌县| 东城区| 确山县| 泰顺县| 灵川县| 同仁县| 遵义市| 威远县| 鹤庆县| 颍上县| 霍林郭勒市| 普格县| 苏尼特右旗| 连州市| 乌兰县| 三亚市| 登封市|