版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、十一節(jié)GUIAWTabstract window toolkit包括了很多類(lèi)和接口用于 javaApplication 的 GUI 編程GUI 的各種元素如窗口按鈕文本由 java 來(lái)實(shí)現(xiàn)使用 AWT 所涉及的類(lèi)一般在 java.awt 包及其子包中Container 和 component 是 AWT 中的兩個(gè)類(lèi)Component 和 Container 區(qū)別1. FrameFrame 是 Window 的子類(lèi)由 Frame 或其子類(lèi)創(chuàng)建的對(duì)象作為一個(gè)窗體。Frame 的常用構(gòu)造方法 Frame FrameString s 創(chuàng)建標(biāo)題所以在創(chuàng)建類(lèi)繼承它時(shí)可以用 superString name
2、 來(lái)創(chuàng)建標(biāo)題例一public class TestFrame Frame f = new Frame("聊天室");/給出名字f.setLocation(300,300);f.setSize(500,200);f.setResizable(true);f.setBackground(Color.white);例二使用新類(lèi)繼承注意用 super 來(lái)給出名字public classTestMultiFrame MyFramem1=newMyFrame(0,0,100,100,Color.red);MyFramem2=newMyFrame(130,110,100,100,Colo
3、r.blue);MyFramem3=newMyFrame(0,110,100,100,Colreen);MyFramem4=newMyFrame(130,0,100,100,Color.yellow);class MyFrameextends Framesicid;MyFrame(x,y,m,n,Color c)super("Myframe"+(+id);/super 起名setLocation(x,y);setSize(m,n);setBackground(c);setVisible(true);setLayout(null);2. panelpanel 對(duì)象可以看成容納
4、 Component 的空間panel 對(duì)象可以擁有自己的布局管理器panel 構(gòu)造方法 panel使用默認(rèn)的 FlowLayout 類(lèi)布局管理器 panelLayoutManager Layout使用指定布局管理器public class TestLayout Frame f = new Frame ("frame with layout");Panel p= nenel();/默認(rèn)為流體管理器Buttonb1=newButton("open");Buttonb2=newButton("close");Buttonb3=newBut
5、ton("mix");f.setLayout(null);/管理器為空可以自己設(shè)定位置p.setLayout(new FlowLayout(FlowLayout.LEFT,11,11);/右對(duì)齊水平垂直均 11 像素p.setBounds(100,100,200,200);p.setBackground(Color.blue);f.setBounds(0, 0, 400, 400);f.setBackground(Color.white);f.add(p);p.add(b1);p.add(b2);p.add(b3);4.布局管理器Java 語(yǔ)言中提供了布局管理器的對(duì)象可以管
6、理管理 Componnet 在 Container 中的布局不必直接設(shè)置Component 的位置和大小每個(gè) Container 都有一個(gè)布局管理器1.流布局管理器2.邊框布局管理器化為 5 個(gè)區(qū)域東西南北中3.表格布局管理器劃分成一個(gè)個(gè)格子例二用到 BorderLayout 和 GridLayout 布局管理器public class TenButtons Frame f = new Frame("Java Frame");f.setLayout(new GridLayout(2,1);f.setBounds(100, 100, 400, 400);f.setBackgr
7、ound(Colray);Panelp1 = nenel(new BorderLayout();Panelp2 = nenel(new BorderLayout();Panelp11 = nenel(new GridLayout(2,1);Panelp21 = nenel(new GridLayout(2,2);p1.add(new Button("Button"),BorderLayout.WEST);p1.add(new Button("Button"),BorderLayout.EAST);p11.add(new Button("Butt
8、on");p11.add(new Button("Button");p1.add(p11,BorderLayoENTER);p2.add(new Button("Button"),BorderLayout.WEST);p2.add(new Button("Button"),BorderLayout.EAST);p2.add(p21,BorderLayoENTER);p21.add(newButton("Button");p21.add(newButton("Button");p21.a
9、dd(newButton("Button");p21.add(newButton("Button");f.add(p1);f.add(p2);布局管理器總結(jié)Frame 是一個(gè)頂級(jí)窗口Frame 的默認(rèn) BoderLayout 布局管理器Panel 無(wú)法單獨(dú)顯示必須添加到某個(gè)容器中默認(rèn) FlowLayout布局管理器注使用布局管理器時(shí)它將負(fù)責(zé)各組件的大小和位置因此用戶(hù)無(wú)需再設(shè)置組件大小和位置如果設(shè)置會(huì)被布局管理器覆蓋掉public class TestActionevent Frame f = new Frame ("guanbi");
10、f.setBounds(200, 200, 200, 200);Button b = new Button("exit");f.add(b,BorderLayout.NORTH);Monitor m = new Monitor();/new 一個(gè)b.addActionListener(m);/調(diào)用class Monitor implementionListenerOverridepublic void actionPerformed(ActionEvente)/重寫(xiě)方法這里為退出System.exit(-1);結(jié)果按下 exit 會(huì)退public class TestAct
11、ionevent2 Frame f = new Frame ("guanbi");f.setBounds(200, 200, 200, 200);Button b1 =new Button("exit");Button b2 =new Button("Start");mand("START ALL")mand 設(shè)置按鈕信息若不設(shè)置如 b1會(huì)把其名字 exit作為信息f.add(b1,BorderLayout.WEST);f.add(b2,BorderLayout.EAST);Monitor1 m = new Mon
12、itor1();b1.addActionListener(m);b2.addActionListener(m);class Monitor1 implementionListenerOverridepublic void actionPerformed(ActionEvent e)System.out.prln("thegame willn"mand()mand 方法將會(huì)得到 Button 的按鈕信息if(mand()= "exit")System.exit(-1);按下 startthe game willSTART ALL按下 stopthe gam
13、e willExit退出6TextFieldjava.awt.TextField 類(lèi)用來(lái)創(chuàng)建文本框?qū)ο骾mportjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;publicclass TsetTextFieldnew Frame1();class Frame1extends FrameFrame1()super("登錄");TextField zh = new TextField();add(zh,BorderLayout.NORTH);zh.addActionListener(new newA
14、ction();TextField mm = new TextField();add(mm,BorderLayout.SOUTH);mm.setEchoChar('*');/getEchoChar() 獲取用于回顯的字符。mm.addActionListener(new newAction();pack();/pack() 調(diào)整此窗口的大小以適合其子組件的首選大小和布局。setVisible(true);claewAction implementionListenerOverridepublic void actionPerformed(ActionEvent e) /getS
15、ource() 返回最初發(fā)生 Event 的對(duì)象。/因?yàn)槭?Frame1 類(lèi)里 zh發(fā)生的再把它強(qiáng)制轉(zhuǎn)換成 TextField放在一個(gè)新的里/然后就相當(dāng)于在此類(lèi)中使用別的類(lèi)的對(duì)象了TextField zh = (TextField)e.getSource();System.out.prln(zh.getText();zh.setText("");7.Graphics 類(lèi)每個(gè) Component 都有一個(gè) PaGraphics g方法用于實(shí)現(xiàn)繪圖目的每次重畫(huà)該 Component 時(shí)都自動(dòng)調(diào)用 pa方法import java.awt.Event.*;public class
16、love7_7foryou new LoveFrame().LoveFrame();class LoveFrameextendsFrame public void LoveFrame()setBounds(200,200,640,480);setVisible(true);Label love = new Label("Just for youBy 忘懷楓");add(love,BorderLayout.SOUTH);/pa畫(huà)畫(huà)方法當(dāng) Frame 需要重畫(huà)時(shí)pa會(huì)被自動(dòng)調(diào)用即只要 frame 出來(lái)了就會(huì)自動(dòng)得到 pa方法無(wú)需手動(dòng)調(diào)用public void pa(Graphi
17、cs g) /Graphics 類(lèi)提供各種畫(huà)畫(huà)圖形a=150,135,108,100,90,58,40,36,63,150,237,264,260,242,210,200,192,165,150;b=150,120,99,98,96,99,120,150,180,280,180,150,120,99,96,98,99,120,150;Color c = g.getColor();/設(shè)置顏色并拿到當(dāng)前畫(huà)筆顏色g.setColor(Color.red);g.fillPolygon(a,b, 19);g.setColor(c);/8.mouse 事件window 事件內(nèi)部類(lèi)import java.u
18、til.*;public class TestMouseAdapternew Frame2("frame2");class Frame2extends FrameArrayList<Po> pos =newArrayList<Po>();/創(chuàng)立一個(gè)容器使用泛型強(qiáng)制只接受 Po類(lèi)型Frame2(String string)super(string);this.setBounds(200, 200, 400, 400);this.setVisible(true);this.addMouseListener(new Mymoniter();this.addWindowListener(new Mymoniter2();public void addPo(Popo) pos.add(po);public void pa(Graphics
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026上半年貴州事業(yè)單位聯(lián)考玉屏侗族自治縣招聘41人備考題庫(kù)有答案詳解
- 初級(jí)社工考試題庫(kù)及答案
- 測(cè)量理論考試試卷及答案
- 頸椎骨折選擇試題及答案
- 2025-2026人教版二年級(jí)數(shù)學(xué)上期末卷
- 2025-2026五年級(jí)信息技術(shù)期末測(cè)試粵教版
- 腸道菌群與代謝病線粒體功能障礙
- 腸道-腦軸在麻醉藥品依賴(lài)性評(píng)價(jià)中的意義
- 肝血管瘤臨床路徑變異的觀察策略
- 探店汽修店衛(wèi)生管理制度
- 農(nóng)投集團(tuán)安全生產(chǎn)制度
- 近五年貴州中考物理真題及答案2025
- 2025年黑龍江省大慶市中考數(shù)學(xué)試卷
- 山東煙草2026年招聘(197人)考試備考試題及答案解析
- 二級(jí)醫(yī)院的DRGs培訓(xùn)課件
- 空芯光纖行業(yè)分析報(bào)告
- 置業(yè)顧問(wèn)崗位招聘考試試卷及答案
- 大眾試駕協(xié)議書(shū)
- 2026年醫(yī)療行業(yè)患者滿(mǎn)意度改善方案
- GB/T 4605-2025滾動(dòng)軸承推力滾針和保持架組件及推力墊圈
- 老年機(jī)構(gòu)養(yǎng)老心理健康評(píng)估方案
評(píng)論
0/150
提交評(píng)論