程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 搭建Java桌面應用程序原型(一)

搭建Java桌面應用程序原型(一)

編輯:關於JAVA

在這篇文章裡,我將描述一個Java桌面應用的原型,我把它叫做JImageing。我打算把焦點集中在應用的框架上,解釋我怎麼做技術上的決定和我怎麼解決在開發過程中出現的問題。

為什麼要建造一個原型?

很多應用程序的開發都是由於幾個原因從一個原型開始的。這些原因中的第一條就是,你必須確定用現有的技術能夠滿足用戶的需求。例如,在不用本地代碼的Swing應用程序中Windows集成不能夠被實現,這就導致喪失了一些Java跨平台的優勢。SWT提供了一個和操作系統有限制的集成,這就允許你在很多本地平台上運行同一應用程序。在很多場合,J2SE平台提供給你需要搭建復雜桌面應用程序的豐富性能。在搭建大型Java桌面工程之前,你總是應該搭建一個原型去看J2SE是否滿足應用程序的需求。

另一方面證明你的想法能夠被實現並且你的技術決定是正確的,一個原型能夠在開發過程中盡早的獲得用戶的反饋。原型也能幫助你估計完成你的工程所需要的時間和資源。花大量的工作去搭建一個有著菜單,對話框,拖拽特性、剪切版支持、恢復管理、打印等功能的用戶接口。在開始這些工作之前,你應該知道搭建應用程序核心功能有多困難。如果你不得不用第三方自定義組件,你應該測試他們看看是否能和你的原型一起工作。如果你不得不解決擴展和性能問題,你應該通過原型狀態找到解決方案。

用戶需求

JImageing原型是一個桌面應用程序,這個應用程序允許你給圖片注釋。Email可能是最流行的“協作工具”,但是可以通過圖片工具提高在截圖上做注釋的能力,這種圖片工具可以讓你畫線,畫矩形、橢圓並且可以寫注釋信息在圖片上。

如果JImageing的用戶使用一個以上的操作系統,那麼對於這樣的一個應用程序Java是很自然的選擇。當Windows支配桌面市場的時候,有一些用戶選擇Mac或者Linux。例如,當Java開發者通過互聯網對一個項目進行合作的時候,有一可能性是他們可以不用同一種操作系統。

這個用戶接口非常簡單,它包括一個工具欄和一個畫圖區。對於測試應用程序的主要功能來說足夠用了。下圖顯示了這個接口的樣子:

包和類

下圖顯示了原型代碼結構。應用程序的最頂層的包僅僅包含Main類,下段再詳細介紹這個類。我將要描述在將來文章中可能用到的其他類。

frames包囊括了描述應用程序主框架類,基於JDesktopPane的主要panel,和基於JInternalFrame文字注釋類。這三個類被命名為MainFrame, MainPanel和NoteFrame。

paint包組織了PaintView組件和它的數據模型(被命名為PaintModel),還有ToolBarBuilder類,這個類創建應用程序的工具欄。tools子包有繪制圖象對象的工具類。

resources包中的ResourcesSupport類是處理ToolBarResources.properties資源和來自images目錄中的圖標的工具類。

The Main Class

這個類實現了應用程序的main方法並且和所有的類、資源打包成一個JAR文件,這個JAR文件命名為JImageing.jar。用下面的命令進行打包:

jar cfm JImaging.jar m.txt com

com目錄包含包裡的類,.properties資源和.gif圖標。

m.txt文件用Main-Class: com.devsphere.articles.desktop.Main簡要說明了應用程序的主要類。

jar工具拷貝m.txt文件到在JImageing.jar中自動創建的META-INF/manifest.mf文件。

下面是Main的主要聲明描述:

package com.devsphere.articles.desktop;
import com.devsphere.articles.desktop.frames.MainFrame;
import com.devsphere.articles.desktop.frames.MainPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.IOException;
import java.util.logging.Logger;

main()方法調用Main()構造器,設置外觀,創建主要窗口然後顯示它:

public class Main {
  private String args[];
  private MainFrame mainFrame;
  private MainPanel mainPanel;
  private Main(String args[]) {
   this.args = args;
  }
  public static void main(String args[]) {
   Main main = new Main(args);
   main.setSystemLookAndFeel();
   main.createFrame();
   main.showFrame();
  }
  ...
}

命令行可以包含一個或兩個參數。用戶能指定一個圖片資源路徑作為第一個參數。應用程序加載和顯示圖片,允許用戶對它進行注釋。如果第二個參數存在,那麼應用程序保存注釋過的圖片到這個參數所給定的文件路徑。運行應用程序,下面的命令行啟動它:

java -jar JImaging.jar sourceImage annotatedImage

J2SE能夠加載GIF,JPEG和PNG文件,但是它僅僅能保存JPEG和PNG格式的圖片。你可以不用GIF格式去保存注釋過的圖片。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved