Welcome to Yumao′s Blog.
T-ELTS Project Day01
, 2012年03月26日 , Java Language , 评论 在〈T-ELTS Project Day01〉中留言功能已關閉 ,

T-ELTS Project Day01

====================
1. Swing Java 的圖形用戶界面
2 學習Swing
3 簡單工廠方法, 用來封裝複雜的對象創建過程, 提供簡單的方法界面
4 包中資源的加載
5 開發任務


1. Swing Java 的圖形用戶界面
 1) AWT 使Java成功技術 : Applet
   AWT 具有強大的繪圖功能
   AWT 的應用控件很少(按鈕,  菜單)
   AWT 時候開發圖形, 不適合開發應用
 2) Swing 是利用AWT繪圖功能, 完整的重新繪製了一套控件系統
   包括: 表格, Tree, 等
   Swing適合寫應用軟件
   由於Windows對Swing支持不好, 很少用Swing開發桌面應用程序
   很少企業 需要Swing人才
 3) 學習建議, 了解Swing, 不必深究!
 4) SWT 來自IBM 全新的GUI 系統, 包含少量的C代碼, 提供全部
  平台的支持. Swt基本實現了跨平台, 代表產品: Eclipse
  使用的企業不是很多

2  學習Swing
 1) 簡單窗口
   JFrame 代表有框的窗口, 中必須放置一個面板
   JPanel 代表空白矩形區域面板, 在面板上可以添加控件/繪製圖形
 2) 圖片加載:
 	Class 提供 getResource 方法, 從package中加載
 	JFrameDemo.class.getResource("img.png");

  任務: 創建一個窗口, 在裡面顯示一張圖片

 3) 布局管理 組件在容器(面板) 中的組件(Button)位置和大小
  A 空布局 (絕對位置布局) 絕對布局管理, 是指定位置和寬高的布局
    JFrame (w:574, H:390)
      |-- JPanel (W:568, H:357)
            |-- JButton OK (x:369 ,y:327 , w:92 ,H:21 )
            |-- JButton Cancel (x:466 ,y:327 , w:92 ,H:21 )

  B 布局管理器(相對位置布局, 組件的大小和位置有布局管理器控制)
    BorderLayout (邊框布局)
      將一個面板,分為東南西北中,每個位置只能放一個控件
      中會自動的向其他的四個方法填充
      ----------------------------
      |        北(North)         |
      |--------------------------|
      |    |               |     |
      |    |       中           |     |
      | 西 |    Center      | 東   |
      |    |               |     |
      |--------------------------|
      |        南(South)         |
      ----------------------------
    FlowLayout (流布局)
     JPanel 的默認布局是FlowLayout
      多個元素順序排序, 一行滿了, 排下一行
    ----------------------------
    | [OK][OK][OK][OK][OK][OK] |
    |      [OK][OK][OK]        |
    |                          |
    ----------------------------
    GridLayout 表格布局,
     指定行數,列數. 元素按照等寬的行列表格進行布局.

    複雜布局 布局套布局實現複雜界面布局管理.

3 簡單工廠方法, 用來封裝複雜的對象創建過程, 提供簡單的方法界面

4 包中資源的加載:
  Class 實例獲得: a. String.class
                 b. str.getClass()
                 c. Class.forName("java.lang.String")

  1) 獲得類的Class實例.
  2) 利用Class實例的方法   getResource() 方法獲得資源
  的URL, 可以進一步打開流
   如: 類 MenuFrame.class 的同包中有圖片title.png
   URL url = getClass().getResourse("title.png")
   URL url = MenuFrame.class.getResourse("title.png")
   其中"title.png" 表示相對路徑訪問, title.png和Class
   在同一個包下, 如果參數以"/" 表示絕對路徑, 訪問其中"/"
   CLASSPATH的根, 如:"/com/tarena/elts/gui/title.png"
  3) 打開圖片 ImageIcon ico = new ImageIcon(url);
  4) 可以利用InputStream in = url.openStream(); 打開為流
  5) 從package(classpath 上)中 打開文本文件
   new BufferedReader(new InputStreamReader(
   	getClass().getReaource("test.txt").openStream()))

5 開發任務:
 1) 創建界面 com.tarena.elts.LoginFrame
            com.tarena.elts.MenuFrame
            com.tarena.elts.ExamFrame
 2) 創建實體對象: com.tarena.elts.entity.Question
                 com.tarena.elts.entity.User
    其中: User 代表系統登錄用戶
         Question 代表試題庫中的試題
 3) 創建值對象:  com.tarena.elts.entity.ExamInfo
                com.tarena.elts.entity.QuestionInfo
    其中: ExamInfo 代表考試狀態信息
         QuestionInfo 代表用戶考卷上的試題, 包含題目,用戶答案和試題序號

 4) 如果沒有思路想法就通過練習案例學習想法.

Code Package

关键字:, , , ,

评论已关闭