freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java程序設(shè)計(jì)之網(wǎng)絡(luò)編程gui程序設(shè)計(jì)、applet應(yīng)用程序ppt(編輯修改稿)

2024-11-15 04:51 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 義MouseListener接口。這個(gè)接口包括若干個(gè)事件,即:mouseEntered, mouseExited, mousePressed, mouseReleased和 mouseClicked。 ? 發(fā)生鼠標(biāo)或鍵盤事件時(shí),有關(guān)鼠標(biāo)的位置和所按下的鍵的信息可以從事件中得到。 代碼: import .*。 import .*。 public class TwoListen implements MouseMotionListener, MouseListener { private Frame f。 private TextField tf。 public static void main(String args[]) { TwoListen two = new TwoListen()。 ()。 } public void go() { f = new Frame(Two listeners example)。 (new Label (Click and drag the mouse), )。 tf = new TextField (30)。 (tf, )。 (this)。 (this)。 (300, 200)。 (true)。 } // These are MouseMotionListener events public void mouseDragged (MouseEvent e) { String s = Mouse dragging: X = + () + Y = + ()。 (s)。 } public void mouseMoved (MouseEvent e) { } // These are MouseListener events public void mouseClicked (MouseEvent e) { } public void mouseEntered (MouseEvent e) { String s = The mouse entered。 (s)。 } public void mouseExited (MouseEvent e) { String s = The mouse has left the building。 (s)。 } public void mousePressed (MouseEvent e) { } public void mouseReleased (MouseEvent e) { } } ? 接收事件并對(duì)事件做出相應(yīng)反映的對(duì)象稱為事件監(jiān)聽器。 義了 11個(gè)監(jiān)聽器接口,每類事件都有對(duì)應(yīng)的事件監(jiān)聽器,監(jiān)聽器是接口,接口中定義了事件發(fā)生時(shí)可調(diào)用的方法,一個(gè)類可以實(shí)現(xiàn)監(jiān)聽器的一個(gè)或多個(gè)接口,這就需要把所實(shí)現(xiàn)接口中所定義的所有方法實(shí)現(xiàn),當(dāng)對(duì)其中的方法不感興趣時(shí),也可以將方法體用一對(duì)();而不給出具體方法。 ? 幾個(gè): ? 1) ComponentAdapter( 組件適配器 ) ? 2) ContainerAdapter( 容器適配器 ) ? 3) FocusAdapter( 焦點(diǎn)適配器 ) ? 4) KeyAdapter( 鍵盤適配器 ) ? 5) MouseAdapter( 鼠標(biāo)適配器 ) ? 6) MouseMotionAdapter( 鼠標(biāo)運(yùn)動(dòng)適配器 ) ? 7) WindowAdapter( 窗口適配器 ) ? 對(duì)于適配器類的定義,我們以 WindowAdapter類為例進(jìn)行說明 ? 先定義接口 public interface WindowListener extends EventListener { public void windowOpened(WindowEvent e)。 public void windowClosing(WindowEvent e)。 public void windowClosed(WindowEvent e)。 public void windowIconified(WindowEvent e)。 public void windowDeiconified(WindowEvent e)。 public void windowActivated(WindowEvent e)。 public void windowDecativated(WindowEvent e)。 } public abstract class WindowAdapter implement WindowListener{ public void windowOpened(WindowEvent e) {} public void windowIconified(WindowEvent e) {} public void windowDeiconified(WindowEvent e) {} public void windowClosed(WindowEvent e) {} public void windowActivated(WindowEvent e) { } public void windowDeactivated(WindowEvent e) {} } 案例: import .*。 import .*。 class WindowClosing extends WindowAdapter { public void windowClosing(WindowEvent e){ (0)。 } } ? 為了簡(jiǎn)化事件源和監(jiān)聽器之間的關(guān)系 , java的事件處理中引入和使用了內(nèi)部類 ( Inner Class) 和匿名類 ( Anonymous Class) , 內(nèi)部類是被定義于另一個(gè)類中的類 , 即類的嵌套 。 由于內(nèi)部類可以訪問外部類的成員方法和變量 , 包括私有的成員 。 所有實(shí)現(xiàn)監(jiān)聽器時(shí) , 采用內(nèi)部類 , 匿名類變成非常容易實(shí)現(xiàn)其功能 。 ? 下面我們通過例子來(lái)體會(huì)通過主類和內(nèi)部類兩種方法實(shí)現(xiàn)監(jiān)聽器的不同之處。 ? 比較兩種實(shí)現(xiàn)方法,首先,用主類做接收器,由于實(shí)現(xiàn)了多個(gè)監(jiān)聽器接口,所以各個(gè)接口中的方法,全部要在主類中實(shí)現(xiàn),多種方法堆砌在一起,加大了程序閱讀和維護(hù)的難度。相反,用內(nèi)部類和匿名類做接收器,每個(gè)接收器就是一個(gè)獨(dú)立的類,不僅閱讀方便,并且由于減少了同主類的耦合性,從而使代碼的重用性大大提高了。其次,觀察第二種實(shí)現(xiàn)方法里的 actionPerformed方法,由于有多個(gè)組件都可能發(fā)生actionEvent事件,所有在處理前首先要判斷傳遞過來(lái)事件的事件源是哪一個(gè)組件,顯然在程序的執(zhí)行效率上,同第一種方法也是有差距的。通過比較,我們認(rèn)為在多個(gè)方面第一種方法都要優(yōu)于第二種,所以用內(nèi)部類和匿名類來(lái)進(jìn)行事件處理是我們推薦的好的實(shí)現(xiàn)事件處理的方法。 案例 // import .*。 import .*。 public class InnerClass extends Frame{ Button b1=new Button(Button 1)。 Button b2=new Button(Button 2)。 public InnerClass() { setLayout(new FlowLayout())。 (new b1L())。 (new b2L())。 add(b1)。 add(b2)。 setSize(200,200)。 setVisible(true)。 addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){(1)。}。 })。//用匿名類實(shí)現(xiàn)窗口關(guān)閉 。。 常用 AWT組件使用舉例 ? ? ? 1.按鈕 Button ? 2.標(biāo)簽 Label ? 3. 單行文本輸入?yún)^(qū) TextField ? 4. 文本輸入?yún)^(qū)( TextArea) ? 5.復(fù)選框 Checkbox ? 6. 復(fù)選框組 CheckboxGroup ? 7. 下拉式菜單 Choice ? 8. 列表 List ? 9. Canvas ? 無(wú)法直接將菜單添加到容器的某一位置,也無(wú)法使用布局管理器對(duì)其加以控制。菜單只能被添加到菜單容器( MenuBar) 中。 設(shè)計(jì)菜單時(shí),首先創(chuàng)建MenuBar實(shí)例,用 add() 方法添加到 Frame容器中,然后,創(chuàng)建 Menu, 并用 add() 方法依次加入到MenuBar上,最后,創(chuàng)建 MenuItem, 用 add() 方法把 MenuItem加入到 Menu上。 ? MenuBar 只能被添加到 Frame對(duì)象中 , 作為整個(gè)菜單樹的根基 。 Frame fr = new Frame(MenuBar)。 MenuBar mb = new MenuBar()。 (mb)。 (150,100)。 (true)。 Menu 下拉菜單 。 它可以被添加到 MenuBar中或其它 Menu中 。 Frame fr = new Frame(MenuBar)。 MenuBar mb = new MenuBar()。 (mb)。 Menu m1 = new Menu(File)。 (m1)。 將 Menu 添加到其它 Menu中可以實(shí)現(xiàn)多級(jí)子菜單的功能。 MenuItem MenuItem是菜單樹中的 葉子節(jié)點(diǎn) 。 MenuItem通常被添加到一個(gè) Menu中 。 對(duì)于 MenuItem對(duì)象可以注冊(cè)事件監(jiān)聽器 , 使其能夠完成相應(yīng)的操作 。 Menu m1 = new Menu(File)。 MenuItem mi1 = new MenuItem(Save)。 Swing組件設(shè)計(jì)用戶界面 ? Swing組件 ? Swing的基本規(guī)則 Swing組件 ? Swing是 Java2平臺(tái)的核心部分,包含大量的組件,從簡(jiǎn)單的標(biāo)簽( Jlable)、 按鈕( Jbutton) 到復(fù)雜的表格( Jtable)、 樹( Jtree)。 幾乎所有Swing組件都是從 Jponent派生來(lái)得,而Jponent是從 AWT的 Container類繼承而來(lái)的。所以, Swing更像是 AWT的擴(kuò)展,而非 AWT的替代。觀察 AWT組件和 Swing組件,發(fā)現(xiàn)幾乎每個(gè)AWT組件都有一個(gè)對(duì)應(yīng)的以 J開頭的 Swing組件,例如, Jbutton對(duì)應(yīng) Button, JPanel對(duì)應(yīng) Panel。不過有很多的 Swing組件沒有對(duì)應(yīng)的 AWT組件,這是因?yàn)?AWT的設(shè)計(jì)初衷是支持開發(fā)小應(yīng)用程序的的簡(jiǎn)單用戶界面,不能實(shí)現(xiàn)一些打印、導(dǎo)航等負(fù)責(zé)功能,而 Swing的出現(xiàn),彌補(bǔ)了這一缺陷。 Swing組件 ? 同 AWT組件相比, Swing組件有很多的優(yōu)點(diǎn),清楚的了解這些優(yōu)點(diǎn),將有助于我們更好的使用 Swing組件。下面我們將詳細(xì)討論這些優(yōu)點(diǎn): ? 工具提示條( tooltip) ? 圖標(biāo)( icon) ? 邊框 ( border) ? 可插拔的界面外觀( pluggable) ? 可存取性( accessibility) ? 雙緩沖( doublebuffering) Swing的基本規(guī)則 ? Swing的程序設(shè)計(jì)一般可按照下列流程進(jìn)行: ? 1) 引入 Swing包 ? 2) 選擇 外觀和感覺 ? 3) 設(shè)置頂層容器 ? 4) 設(shè)置按鈕和標(biāo)簽 ? 5) 向容器中添加組件 ? 6) 在組件周圍添加邊界 ? 7) 進(jìn)行事件處理 AWT圖形和 Java2D圖形 ? ? Java2D圖形 ? 圖形上下文和圖形對(duì)象 ? 坐標(biāo) ? 顏色 ? 字體 畫線 、 矩形和橢圓 下面的程序說明了如何繪制各種線條、矩形、立體矩形、圓角矩形和橢圓。 import .*。 import .*。 import .*。 pub
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1