版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第十章 Java的窗口、菜單、對話框 Java的AWT包提供三個顯示窗口的組件:window,Frame 和Dialog。 10.1 Java窗口 AWT widnow 類允許用戶創(chuàng)建包含applet的獨立于瀏覽器窗口的“窗口”,即單獨彈出的窗口。其具有自己的標題、尺寸以及菜單等。 但是Window類不能被直接使用,它只提供窗口的基本行為。通常由其子類Frame 和Dialog代替widnows 類。而且在Frame類中可以實現(xiàn)菜單功能。,Frame - 框架 Frame是一個完整的窗口類,它包括邊界、標題和一個可選的菜單欄??蚣艿拇笮】梢哉{(diào)整。 Frame 類的幾個實例方法: (P165)
2、setBounds(int a,int b,int width,int height),setSize(int a,int b) setBackground(Color c) setVisible(boolean b) validate() setTitle(String name) getTitle() setResizable(boolean b) getMenuBar():返回一個 MenuBar setMenuBar(MenuBar) 下面這個例子是Frame 的簡單應(yīng)用的例子。通過單擊 Applet中的一個按鈕來創(chuàng)建Frame框架,import java.applet.*; impo
3、rt java.awt.*; import java.awt.event.*; public class Applet2 extends Applet public void init() setBackground(Color.lightGray); Button newFrame=new Button(Creat Frame); add(newFrame); newFrame.addActionListener(new ButtonListener(); class ButtonListener implements ActionListener int count; public voi
4、d actionPerformed(ActionEvent e) Frame f=new Frame();,Button close=new Button(Close this Frame); close.addActionListener(new CloseListener(); f.add(close); f.addWindowListener(new WListener(); f. validate(); f.setTitle(Frame+Integer.toString(count); f.show(); showStatus(CreatFrame+Integer.toString(c
5、ount); count+; ,class CloseListener implements ActionListener public void actionPerformed(ActionEvent e) (Frame)(Button)e.getSource().getParent().dispose(); class WListener extends WindowAdapter /適配器 P173 public void windowClosing(WindowEvent e) (Frame)e.getSource().dispose();,WindowAdapter 類 適配器可以代
6、替一個接口來處理事件。 當java提供處理事件的接口多于一個方法時,java相應(yīng)地就提供一個適配器類。適配器已經(jīng)實現(xiàn)了相應(yīng)的接口。因而可以用WindowAdapter的子類創(chuàng)建的對象做監(jiān)視器。在子類中overridding所需要的接口方法即可。,例如:文件名 Mywindow.java ,本程序說明了如何應(yīng)用Frame 類 import java.awt.*; import java.awt.event.*; class mycanvas extends Canvas /畫布類 mycanvas() getSize(); public void paint(Graphics g) setBac
7、kground(Color.cyan); g.setColor(Color.red); g.drawString(i am drawing on the canvas of the window ,50,60); public Dimension getPreferredsize() return new Dimension(200,400); ,class mywindowListener extends WindowAdapter /適配器 public void windowClosing(WindowEvent e) System.exit(0); class Mywindow ext
8、ends Frame implements ActionListener Button button; static Label lab; Mywindow(String s) /構(gòu)造方法 super(s); /調(diào)用父類的構(gòu)造方法給窗口起名 mywindowListener wl=new mywindowListener();,button=new Button(Im the button ); button.addActionListener(this); setLayout(new GridLayout(2,2); /布局 add(button); setSize(200,300); /窗
9、口大小 setBackground(Color.blue); /窗口底色 addWindowListener(wl); setVisible(true); /窗口初始可見 pack(); /以緊湊方式顯示窗口 public void actionPerformed(ActionEvent e) if (e.getSource()=button) lab.setText(The button is clicked!); ,public static void main(String args) Mywindow w=new Mywindow (Java window); String title
10、=w.getTitle (); System.out.println(The window+title+ is the window that we establish in the java application); mycanvas can=new mycanvas(); w.add(can); Font f=new Font(TimesRoman,Font.BOLD,46); lab= new Label(I am a lable); w.add(lab); ,程序的構(gòu)架,10 . 2 菜單 菜單系統(tǒng),菜單類(Menu)的主要方法: Menu(): 建立 一個空標題的菜單 Menu(S
11、tring s): 建立 一個指定標題的菜單 add(MenuItem item):向菜單增加由參數(shù)item指定的菜單選項對象 getItem(int n): 得到指定索引處的選項 getItemCount(): 得到菜單選項數(shù)目 insert(MenuItem item,int n):在菜單指定位置插入菜單選項 remove(int n):刪除菜單的指定位置的菜單選項,removeAll() :刪除菜單的所有選項 菜單項類(MenuItem)的主要方法: MenuItem(): 建立無標題菜單項 MenuItem (String s): 建立有標題的菜單項 setEnable(boolean
12、 b):設(shè)置當前菜單項是否可以被選擇 getLabel(): 得到菜單項的名字 addActionListener(ActionListener),本例說明可以將單獨的一個類進行編譯,然后供其他類使用。 P58 文件名:uFrame.java package myjava.tryFrame; import java .awt .* ; public class uFrame extends Frame uFrame(String title) super(title); /調(diào)用超類的構(gòu)造方法 MenuBar menuB=new MenuBar(); /先創(chuàng)建菜單條 setMenuBar(men
13、uB); /將其設(shè)置在Frame中,程序里使用了package myjava.tryFrame包語句 則目錄結(jié)構(gòu)里必須包含如下結(jié)構(gòu): myjavatryFrame 要把包含該語句的源文件保存在 myjavatryFrame目錄中,然后編譯源文件 例如, 文件名:uFrame.java 則應(yīng)該有結(jié)構(gòu)myjavatryFrameuFrame.java,public class uFrame extends Frame uFrame(String title) super(title); /調(diào)用超類的構(gòu)造方法 MenuBar menuB=new MenuBar(); /先創(chuàng)建菜單條 setMenuB
14、ar(menuB); /將其設(shè)置在Frame中 Menu mF=new Menu (“File”); /創(chuàng)建Menu menuB.add (mF); /將其添加到菜單條上 mF.add (new MenuItem(“Open”); /再為菜單添加菜單項 Menu sub=new Menu (Connect); mF.add (sub); sub.add (new MenuItem(Oracle); sub.add (new MenuItem(Sybase); sub.add (new MenuItem(SQL); /以上三項是sub菜單項的子菜單,mF.add (new MenuItem(Sa
15、ve); mF.add (new MenuItem(-); mF.add (new MenuItem(Exit); /以上三項是與“Open”和“Connect”菜單項并列的菜單項 下面是使用包”myjava.tryFrame”的類 import java .awt .* ; import myjava.tryFrame.*; public class UseFrame extends java .applet .Applet uFrame win;,public Insets insets() return new Insets(10,10,10,10); public void init(
16、) insets(); win=new uFrame (This is my Window); win.resize (200,150); win.show (); 執(zhí)行結(jié)果見圖,10 . 3 對話框 對話框功能類似于框架(frame),它在屏幕上彈出新的窗口,作為臨時窗口用來顯示或提示用戶輸入信息的彈出式窗口,實現(xiàn)用戶與系統(tǒng)的交互操作。 其目的的讓用戶將注意力集中于所要求的輸入上。 1、對話框與窗口的區(qū)別: 對話框依賴于其他窗口/組件 窗口/組件消失,對話框消失;窗口/組件恢復(fù),對話框恢復(fù) 2、對話框有模式之分,模式意味著: 首先,它阻塞線程的執(zhí)行; 其次,它阻塞其它窗口的輸入操作。 3、對
17、話框無添加菜單功能,無模式對話框(non-modal):可以響應(yīng)對話框以外的事件。 有模式對話框(modal):只讓應(yīng)用程序響應(yīng)對話框內(nèi)的事件。這類對話框是防止自身未消除以前,向applet或application的任何其他窗口輸入。 默認情況下,對話框是無模式的。但是可以改變對話框的模式。 3、Dialog類主要提供了兩個構(gòu)造方法 Dialog(Frame f, String s) :創(chuàng)建一個具有標題,初始不可見的,屬于某個窗口(Frame)的對話框。,Dialog(Frame, String, boolean):創(chuàng)建一個帶標題的對話框。 其中布爾型的參數(shù)若為true則創(chuàng)建無模式對話框,允許
18、向其他窗口輸入事件;若為false則創(chuàng)建有模式對話框。 例子: import java.awt.*; import java.applet.*; class Dwindow extends Frame Button b1,b2;,Dwindow(String s) super(s); b1=new Button(打開); b2=new Button(關(guān)閉); add(b1); add(b2); setVisible(true); class Mydialog extends Dialog /建立對話框 Button b1,b2;,Mydialog(Frame F, String s) /構(gòu)造方法 super(F,s); b1=new Button(open); b2=new Button(close); setLayout(new FlowLayout(); setSize(90,90); setVisible(true); setModal(false); add(b1); a
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)人力資源管理師變革管理測試考核試卷含答案
- 山石工沖突解決評優(yōu)考核試卷含答案
- 鋼琴共鳴盤制作工崗前技能評估考核試卷含答案
- 2024年都昌縣幼兒園教師招教考試備考題庫附答案
- 2024年邵陽通航職業(yè)技術(shù)學院輔導員招聘考試真題匯編附答案
- 2024年鄂州市遴選公務(wù)員筆試真題匯編附答案
- 2025安徽淮北市總工會社會化工會工作者招聘9人備考題庫附答案
- 2025年云南省公務(wù)員考試行測常識判斷題及1套完整答案
- 2025年企業(yè)市場調(diào)研流程手冊
- 2025年航空公司航班運營與安全手冊
- 2025年大學大四(預(yù)防醫(yī)學)環(huán)境衛(wèi)生學階段測試試題及答案
- 文物安全保護責任書范本
- 產(chǎn)房護士長年度工作業(yè)績總結(jié)與展望
- 【初中 歷史】2025-2026學年統(tǒng)編版八年級上學期歷史總復(fù)習 課件
- 2025~2026學年黑龍江省哈爾濱市道里區(qū)第七十六中學校九年級上學期9月培優(yōu)(四)化學試卷
- 2025年律師事務(wù)所黨支部書記年終述職報告
- 中國腦小血管病診治指南2025
- 中國零排放貨運走廊創(chuàng)新實踐經(jīng)驗、挑戰(zhàn)與建議
- 宋代插花課件
- 2025年度耳鼻喉科工作總結(jié)及2026年工作計劃
- 2024年執(zhí)業(yè)藥師《藥學專業(yè)知識(一)》試題及答案
評論
0/150
提交評論