• /  39
  • 下載費用: 9.90積分  

Java程序設計_徐紅 王燦_電子課件16_單元4_任務2.ppt

'Java程序設計_徐紅 王燦_電子課件16_單元4_任務2.ppt'
任務二:計算器界面設計單元四:圖形用戶界面程序設計教學目標知識目標Java布局管理方式和布局管理器;常見布局方式特點和使用方法 。能力目標能會靈活使用基本控件和常見布局管理器設計用戶界面。教學內容4任務陳述123知識準備任務實施任務拓展任務實訓5 1. 任務陳述任務描述編寫計算器程序,實現加減乘除基本數學運算。本次任務只完成界面的設計和顯示任務,運行結果如下圖所示: 2. 知識準備用戶界面上的組件可以按不同方式排列,Java使用布局管理器來管理這些排列方式每當需要重新調整屏幕大小或重新繪制屏幕上任一項目時,就要用到布局管理器AWT提供一組用來進行布局管理的類,稱為布局管理器或布局。所有布局都實現 LayoutManager接口 2. 知識準備下面介紹幾種常見布局邊界布局 ( BorderLayout)網格布局( GridLayout)盒式布局(BoxLayout)流布局 (FlowLayout)卡片布局 (CardLayout)自定義布局( null ) 2. 知識準備布局管理器如 FlowLayout、CardLayout、GridLayout、BorderLayout、BoxLayout 、GridBagLayout 等容器內組件的大小和位置由布局管理器控制,當容器大小發生改變時,可以自動調整,以盡量美觀的方式適應容器的變化null 布局容器內組件的大小和位置用絕對值指定,當容器大小發生改變時,不會改變。這是對NetBeansIDE等可視化IDE支持的通過拖放進行的布局方式的支持邊界布局管理器當窗口縮放時,組件的位置不發生變化,但組件的大小會相應改變邊界布局管理器給予南、北組件最佳高度,使它們與容器一樣寬;給予東、西組件最佳寬度,而高度受到限制。如果窗口水平縮放,南、北、中區域變化;如果窗口垂直縮放,東、西、中區域變化它是窗口( JWindow)、框架(JFrame)、對話框(JDialog)等類型對象的默認布局 2. 知識準備 2. 知識準備下面是BorderLayout的構造方法:BorderLayout( ):生成默認的邊界布局 BorderLayout(int horz,int vert): 可以設定組件間的水平和垂直距離 東、南、西、北、中分別對應于窗口的頂部、左部、底部、右部和中部,用BorderLayout.NORTH、BorderLayout.SOUTH、BorderLayout.WEST、BorderLayout.EAST及BorderLayout.CENTER分別表示窗口、框架和對話框等的缺省布局組件可被置于容器的北、南、東、西或中間位置方法名方法功能BorderLayout ( )構造一個組件之間沒有間距的新邊框布局Borde.rLayout ( int hgap, int vgap)構造一個具有指定組件問距的邊框布局addLayoutComponent(String name, Component comp)將指定組件添加到布局void setHgap(int hgap)設置組件間的水平間距void setVgap(int vgap)設置組件之間的垂直間隙int getHgap( )獲取組件之間的水平問隙int getVgap( )獲取組件之間的垂直間隙 2. 知識準備 2. 知識準備 BorderLayout 類定義了幾個常量值以指定相應區域BorderLayout.NORTH – 對應容器的頂部BorderLayout.EAST – 對應容器的右部BorderLayout.SOUTH – 對應容器的底部BorderLayout.WEST – 對應容器的左部BorderLayout.CENTER – 對應容器的中部加入組件方法 void add(Component Obj, int region); . . . setLayout(new BorderLayout()); Button btnEast=new Button("東"); Button btnWest=new Button("西"); Button btnNorth=new Button("北"); Button btnSouth=new Button("南"); Button btnCenter=new Button("中"); add(btnEast,BorderLayout.EAST); add(btnWest,BorderLayout.WEST); add(btnNorth,BorderLayout.NORTH); add(btnSouth,BorderLayout.SOUTH); add(btnCenter,BorderLayout.CENTER); . . . 2. 知識準備網格布局( GridLayout )是將容器中各個組件呈網格狀布局,平均占據容器的空間GridLayout的規則相當簡單,允許用戶以行和列指定布局方式,每個單元格的尺寸決定于單元格(主要取決于行數)的數量和容器的大小,組件大小一致 2. 知識準備GridLayout的構造函數如下所示: -  GridLayout():生成一個單列的網格布局 - GridLayout(int row,int col):生成一個設定行數和列數的網格布局 - GridLayout(int row,int col,int horz,int vert):可以設置組件之間的水平和垂直間隔 用于將容器區域劃分為一個矩形網格組件按行和列排列. . . Button btn[]; // 聲明按鈕數組 String str[]={"1","2","3","4","5","6","7","8","9"}; setLayout(new GridLayout(3,3)); btn=new Button[str.length]; // 創建按鈕數組 for(int i=0;i<str.length;i++){ btn[i]=new Button(str[i]); add(btn[i]); } 2. 知識準備方法名方法功能GridLayout()以默認的單行、每列布局一個組件的方式構造網格布局GridLayout(int rows,int cols)以指定的行和列構造網格布局GridLayout(int rows,int cols,int hgap,int vgap)以指定的行、列、水平間距和垂直間距構造網格布局void setRows(int rows)設置行數void setColumns(int cols)設置列數 2. 知識準備Box 布局組件排為一行或一列組件再多也不會變為多行或多列可使用支撐調整組件間距離可使用膠水處理剩余空間 2. 知識準備null 布局設置容器為 空布局:setLayout(null);設置組件大小和位置:setBounds(int x,int y,int w。省略部分。on("/"); operatorPanel.add(jb); jp.add(operatorPanel,BorderLayout.EAST); //添加JPanel容器到窗體中 setContentPane(jp); 3. 任務實施構造方法代碼Calculator() { … … //設置窗體的標題、大小、可見性及關閉動作 setTitle("計算器"); setSize(340,260); setVisible(true); // 設置窗口關閉時,程序退出 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } 3. 任務實施main方法 public static void main(String[] args) { new Calculator(); } 流布局FlowLayout是Applet和Panel缺省的布局管理器,除非用戶使用setLayout方法改變布局。FlowLayout將組件按照從左到右,從上到下的方式排列,按加入(通過容器的Add方法進行添加)到容器的順序布局控件。同時,組件的排列隨容器大小的變化而變化,但組件大小保持不變。 4. 任務拓展 4. 任務拓展FlowLayout的構造函數有:FlowLayout( ):生成一個默認的流式布局FlowLayout(int alignment):可以設定每一行組件的對齊方式 FlowLayout(int alignment,int horz,int vert):可以設定組件間的水平和垂直距離組件從左上角開始按從左到右、從上到下的方式排列FlowLayout mylayout = new FlowLayout();FlowLayout exLayout = new FlowLayout(FlowLayout.RIGHT);setLayout(exlayout); // 為容器設置新布局 方法名方法功能FlowLayout()組件缺省的對齊方式居中對齊,組件水平和垂直間距缺省值為5像素FlowLayout(int align)以指定方式對齊,組件間距為5像素。如FlowLayout(FlowLayout.LEFT)表示居左對齊,橫向間隔和縱向間隔都是缺省值5個象素FlowLayout(int align, int hgap, int vgap)以指定方式對齊,并指定組件水平和垂直間距。addLayoutComponent(String name, Component comp)將指定組件添加到布局void removeLayoutComponent(Component comp)從布局中移去指定組件void setHgap(int hgap)設置組件間的水平方向間距void setVgap(int vgap)得到組件間的垂直方向間距void setAlignment(int align)設置組件對齊方式 4. 任務拓展 4. 任務拓展CardLayout 可存儲幾個不同的布局每個布局就像是一個卡片組中的一張卡片在一個給定的時間總會有一張卡片在頂層卡片通常為一個 Panel 對象每當需要許多面板切換,而每個面板需要顯示為不同布局時,可以使用卡片布局最初顯示容器時,增加到CardLayout對象的第一個組件可見為了使用疊在下面的組件,可以為每個組件取一名字,名字在用add()方法向容器添加組件時指定,需要某個組件時通過show()方法指定該組件的名字來選取它也可以順序使用這些組件,或直接指明選取第一個組件(用first()方法)或最后一個組件(用last()方法) 4. 任務拓展方法名方法功能CardLayout()構造沒有間距的卡片布局CardLayout(int hgap,int vgap)構造指定間距的卡片布局void first(Container parent)移到指定容器的第一個卡片void next(Container parent)移到指定容器的下一個卡片void previous(Container parent)移到指定容器的前一個卡片void last(Container parent)移到指定容器的最后一個卡片void show(Container parent,String name)顯示指定卡片 4. 任務拓展調整組件間隙 2-1上頁圖1界面中組件間有空隙,圖2、圖3界面中組件沒有空隙,這是因為:圖1界面采用流布局,組件水平和垂直間距缺省值為5像素。圖2、圖3界面分別采用網格布局和邊界布局,組件水平和垂直間距缺省值為0。但可以通過相應的構造方法設定空隙GridLayout(int rows,int cols,int hgap,int vgap);Borderlayout(int hgap,int vgap) ;hgap和vgap分別為組件間水平和垂直方向的空白空間 4. 任務拓展調整組件間隙 2-2在布局時還可以使用空隙類??障额愑糜诳刂平M件之間的間隔,使組件之間可以更好地顯示??障额惖膭摻ǚ椒ㄈ缦拢篊omponent component=Box.createRigidArea(size):方形空隙類Component component=Box.createHorizontaIGlue(size):水平空隙類Component component= Box.createHorizontaIStrut( size):水平空隙類,可以定義長度。Component component=Box.createVerticalGlue(size):垂直空隙類Component component=Box.createVerticaIStrut(size):垂直空隙類,可以定義高度 4. 任務拓展 4. 任務拓展每個布局管理器都有自己特定的用途要按行和列顯示幾個同樣大小的組件,GridLayout 會比較合適要在盡可能大的空間里顯示一個組件,就要選擇 BorderLayout 或 GridBagLayout 4. 任務拓展布局器不只是上面所講的幾種類型,常見的還有 JRootPane.RootLayout, OverlayLayout, SpringLayout , OverlayLayout, ScrollPaneLayout 等更多的布局器可以通過jdk文檔,查看 LayoutManager和LayoutManager2 兩個接口我們可以通過實現上面兩個接口來定義我們自己的特殊的布局方式,雖然實際上可能沒有這種必要 5. 任務實訓一、實訓目的 熟悉并掌握Java布局管理器的使用二、實訓內容 設計會員登記錄入界面,如下圖所示 5. 任務實訓三、簡要提示 可以通過容器嵌套的方式來完成練習,兩個垂直盒子,兩個水平盒子嵌套完成布局四、實訓思考 怎樣更方便、快捷的完成界面設計?
關 鍵 詞:
java 單元 電子 16 程序設計 任務
 天天文庫所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:Java程序設計_徐紅 王燦_電子課件16_單元4_任務2.ppt
鏈接地址: http://www.476824.live/p-51617544.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服點擊這里,給天天文庫發消息,QQ:1290478887 - 聯系我們

本站為“文檔C2C交易模式”,即用戶上傳的文檔直接賣給(下載)用戶,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有【成交的100%(原創)】。本站是網絡服務平臺方,若您的權利被侵害,侵權客服QQ:1290478887 歡迎舉報。

[email protected] 2017-2027 http://www.476824.live 網站版權所有

粵ICP備19057495號 

收起
展開
球探网即时蓝球比分 海南4十1彩票每注奖金 广东快乐十分牛定走势 炒股课程学费2万元 彩运网秒速时时彩 黑龙江p62中奖号码 浙江11选5玩法介绍乐选 福建36选7怎么玩 中国体育彩票领奖流程 时时彩软件哪个比较好 青海快3开奖结果今天二人