2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、面向對象與多線程綜合實驗-GUI設計,教師:段鵬飛,實驗 4-實驗目的,了解Java圖形界面程序的基本結構掌握Java布局管理和常用組件的使用掌握Java事件處理機制,實驗內容,編寫程序,將前面課程所編寫的檔案管理系統(tǒng)改編為圖形用戶界面。 要求:程序界面選用合適的布局,綜合使用菜單、按鈕、文本框、密碼框、下拉列表、文件對話框等組件,實現(xiàn)良好的人機接口。,界面構成,1、登陸界面:包含用戶名、密碼等輸入,以及登陸按鈕等事件操作。

2、 2、管理員、錄入員、瀏覽員等不同對象的主界面:在主界面中實現(xiàn)菜單操作,以及相應地按鈕功能(注意界面的布局)。 3、在文件上傳的過程中實現(xiàn)文件選擇對話框(參考JFileChooser),圖形用戶界面的組成,多行文本框,,組件,單選按鈕,單行文本框,標簽,復選按鈕,按鈕,,,,,,,,,,,,,,,組合框,,窗口,,面板,,,容器,,4、Frame,抽象窗口工具集AWT,java.awt包中的主要類 以及組件類的繼承關系,NCEP

3、U,,java.lang.Object,Java中有兩種主要容器:窗口和面板窗口(Window)是可以自由移動的,不依賴其他容器而存在的容器面板(Panel)與窗口類似,但不能獨立存在,必須包含在另外一個容器里,如包含在Frame或Web中,窗口(Window)有兩個主要組件:框架和對話框在Java應用程序中,一般獨立應用程序主要使用框架 (Frame)做容器,在框架上通過放置面板(Panel)來控制圖形界面的布局

4、。如果應用到瀏覽器中,則主要使用面板的一個子類Applet來做容器,它能嵌入瀏覽器運行。,第一節(jié) 抽象窗口工具集AWT,java.awt包中的主要類 以及組件類的繼承關系,,java.lang.Object,知識要點 - GUI設計流程,一般可按照下列流程進行引入Java圖形組件包 AWT、Swing選擇“外觀和感覺”設置窗體屬性設置組件布局向窗體中添加組件對組件進行事件處理,內容面板:Panel類對象,下拉菜

5、單:Menu類對象,文本框:TextField類對象,按鈕:Button類對象,窗體:Frame類對象,,“交互”的實現(xiàn)如何判斷“按鈕”變化如何實現(xiàn)按下以后 的工作,知識要點 – 實現(xiàn)GUI步驟示意,菜單組件不能將菜單組件直接添加到一般的容器中不能使用布局管理器對它們進行布局AWT提供的菜單機制是這樣的:一個容器包含一個菜單條,一個菜單條中包含多個菜單,一個菜單中包含多個菜單或菜單項和菜單相關的組件有四個:Me

6、nuBar, Menu, MenuItem, CheckboxMenuItem.,知識要點 - 菜單,布局策略,Java在java.awt包中定義了5種布局,它們分別是:FlowLayout、BorderLayout、CardLayout、GridLayout、GridBagLayout。設置布局的格式為: 容器對象.setLayout(布局策略);Panel p = new Panel();p.setLayout(n

7、ew BorderLayout());,布局管理器,FlowLayout(流式布局)將組件逐個放到容器的一行上一行放滿后就重新起一個新行BorderLayout(邊界布局)容器被劃分為東(East)、南(South)、 西(West)、北(North)、中(Center),布局管理器,GridLayout(網格式布局) 將容器分為大小相等的若干行乘若干列的網格,組件從左至右,從上到下放入網格中,每個組件占一格(表

8、格式)CardLayout(卡片式布局) 將容器中的組件處理成一組卡片,每一時刻只顯示一張卡片,可以在卡片間切換,浮動布局FlowLayout,浮動布局是按照組件的順序,用add方法將組件從左至右在一行排列,一行放不下時就自動換行。這是系統(tǒng)的默認的布局方式。 其設置的方法為: setLayout(new FlowLayout());,第四節(jié) 布局管理器,,NCEPU,,,,,import java.awt.*;

9、public class MyFlow { private Frame f; private Button b1, b2, b3;public static void main (String args[]){MyFlow mf = new MyFlow ( ); mf. go ( ); }public void go ( ) {f = new Frame ( "Flow Layout&q

10、uot; );f. setLayout (new FlowLayout ( ) );b1 = new Button ( "OK" );b2 = new Button ( "Open" );b3 = new Button ( "Close" );f. add ( b1 ); f. add ( b2 ); f. add ( b3 );f. set

11、Size ( 100, 100 );f. setVisible ( true ); }},輸出為:,邊界布局BorderLayout,BorderLayout類把容器劃分成5個區(qū)域,分別標記為“North”、“South”、“West”、“East”和“Center”。 其設置的方法為: setLayout(new BorderLayout());,中,北,西,南,東,邊界布局示例,1. /* 邊界布局示例 */2.

12、import java.awt.*;3. public class Example4_6 extends java.applet.Applet4. { 5. public void init(){6. setLayout(new BorderLayout());7. //將其他構件加入8. add("East", new Button("Eas

13、t"));9. add("South", new Button("South"));10. add("West", new Button("West"));11. add("North", new Button("North"));12. add("Cen

14、ter", new Button("Center"));13. }14. },網格布局GridLayout,GridLayout類以矩形網格形式對容器中的組件進行布局。容器被分成大小相等的單元格,單元格的大小由最大的構件所決定,用add方法將組件一行一行地從左至右放置到布局的每個單元格中。其設置的方法為:setLayout(new GridLayout(int row, int cols));

15、row是網格的行數(shù),cols是網格的列數(shù)。,這種布局包含幾個卡片,在某一時刻只有一個卡片是可見的,而且第一個卡片顯示的內容可用自己的布局來管理。,卡片布局設置的方法為: setLayout(new CardLayout());,4、卡片布局CardLayout,知識要點 - 布局技巧,容器的嵌套一個包含了多個組件的容器本身可以作為一個組件加到另一個容器中去,容器中再添加容器,這樣就形成了容器的嵌套。多面板技術將窗口分割成多個獨立

16、的面板,每個面板獨立布局(即為每個面板分別設置不同的布局管理器),然后再使用另一種布局管理器來組織這些面板。,,知識要點 - 事件處理,實現(xiàn)事件處理的步驟 創(chuàng)建事件監(jiān)聽器類 創(chuàng)建事件監(jiān)聽器對象 注冊事件監(jiān)聽器,2.1 事件機制的幾個概念,事 件 事件源產生的交互內容,如“按下鼠標” (ActionEvent) 在 java.awt.event包中定義的類,事件監(jiān)聽器 接收事件并進行處理,由程序員編寫(Act

17、ionListener) 對應處理所監(jiān)聽事件源產生的事件,監(jiān)聽器接口 編寫“事件監(jiān)聽器”的“規(guī)定” – “抽象方法” 必須在監(jiān)聽器類中實現(xiàn)這些方法完成事件處理,監(jiān)聽器注冊 將事件監(jiān)聽器對象綁定到事件源,進行監(jiān)聽,事件源 描述人機交互中事件的來源(EventSource) 通常是Java圖形包中組件,class myButtonFrame extends Frame

18、 {Button btn;myButtonFrame(String s) { //構造函數(shù)super(s);this.setSize(200,120); /* 創(chuàng)建按鈕*/ btn = new Button("點擊");this.add(btn);// 事件監(jiān)聽器創(chuàng)建和注冊ButtonListener bl = new ButtonListe

19、ner();btn.addActionListener(bl);}},知識要點 - 事件處理,import java.awt.*; import java.awt.event.*;class ButtonListener implements ActionListener {public void actionPerformed ( ActionEvent e ) {System.out.println

20、 ( “我知道你按下按鈕啦“ );}},public class ActionEventTest { // 主類 public static void main(String args[]){myButtonFrame frm = new myButtonFrame("ActionEventTest");frm.show(); // 顯示窗體 }

21、 },按鈕 事件源,注冊監(jiān)聽器,,設計自己的窗體類,監(jiān)聽器類,,,知識要點 - 終端程序轉化為GUI,1、借鑒改寫計算器的思維,將原來的程序進行封裝(只改寫showmenu())2、借鑒MVC的思想,界面和控制進行分離。,知識要點 - 注意事項,1、設置邊界時要使用swing(awt不支持setborder);2、注意使用e. getSource()和e. getActionCommand()來區(qū)分不同的對象;,謝謝,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論