javajava圖形用戶界面與事件處理.ppt
《javajava圖形用戶界面與事件處理.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《javajava圖形用戶界面與事件處理.ppt(56頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
21 20 第1頁 第五章 java圖形用戶界面與事件處理 21 20 第2頁 知識(shí)點(diǎn) 了解GUI相關(guān)概念掌握常用AWT組件的屬性及用法掌握J(rèn)ava外觀布局的管理與控制掌握事件處理方法 21 20 第3頁 本章主要介紹以下4個(gè)部分的內(nèi)容 一 JavaAWT AbstractWindowToolkit 組件介紹二 AWT中的常用組件及用法三 Java外觀布局的管理與控制四 Java事件與事件處理 21 20 第4頁 面向?qū)ο蟮膱D形用戶界面 基于 面向?qū)ο?的思想互相交換信息 即盡可能在屏幕上用形象的圖標(biāo)和窗口等來代表有用的資源和可啟用的對(duì)象 圖形界面對(duì)象 代表特定的命令 過程 資源 提示信息等圖標(biāo) Icon 標(biāo)簽 Label 窗口 Window 菜單 Menu 菜單項(xiàng) MenuItem 按鈕 Button 文本框 TextField 列表框 List 圖形用戶界面 21 20 第5頁 一 JavaAWT AbstractWindowToolkit 組件介紹 通過圖形用戶界面 GraphicalUserInterface GUI 用戶和程序之間可以方便友好地進(jìn)行交互 在Java語言中 Java的基礎(chǔ)類 JavaFoundationClassed JFC 是開發(fā)GUI的API集 它包括以下幾個(gè)部分 1 抽象窗口工具包 AWT Java開發(fā)用戶界面最初的工具包 是建立JFC的主要基礎(chǔ) 2 2DAPI 實(shí)現(xiàn)高質(zhì)量的二維圖形 3 Swing組件 建立在AWT之上 新的 功能更強(qiáng)大的圖形組件包 21 20 第6頁 1 抽象窗口工具包 AWT 21 20 第7頁 Graphics類還提供了一系列的方法來繪制幾何圖形 文字 圖象以及動(dòng)畫 Lines drawLine Rectangles drawRect fillRect Raisedorloweredrectangles draw3DRect 和fill3DRect Ovals drawOval 和fillOval Arcs drawArc 和fillArc Polygons drawPolygon 和fillPolygon Text drawString Image drawImage Animation 通過一個(gè)循環(huán)來完成 2 2DAPI 21 20 第8頁 javax swing中的組件JLabel顯示一行文字 可帶圖標(biāo)JTextField用戶讓用戶輸入一行文字的構(gòu)件JButton用于點(diǎn)擊執(zhí)行命令JCheckBox復(fù)選框JRadioButton單選按鈕JCombox下拉列表框供選取JList一組列表項(xiàng)供選擇 3 Swing組件 21 20 第9頁 二 AWT中的常用組件及用法 1 容器 Container 一個(gè)Java的圖形用戶界面的最基本組成部分就是組件 Component 組件是一個(gè)可以以圖形化的方式顯示在屏幕上并能與用戶進(jìn)行交互的對(duì)象 比如Button Checkbox Choice Label List等 組件不能獨(dú)立地顯示出來 必須將組件放在特定的對(duì)象中才能顯示出來 這就是包含組件的組件 Container 容器 容器Container是Component的子類 它本身也是一個(gè)組件 具有組件所有的性質(zhì) 另外 它還具有容納其他組件和容器的功能 21 20 第10頁 Container類的功能 Container類是由Component類派生出來的一種特殊類 用來表示各種GUI組件的容器 其主要功能包括 組件的管理 方法add 可以向其中添加一個(gè)組件 remove 刪除其中的一個(gè)組件 布局管理 每個(gè)Container類都和一個(gè)布局管理器相聯(lián) 以確定其中組件的布局 Container類可以通過setLayout 方法設(shè)置某種布局方式 常見的Container類有 Frame Panel Applet等 二 AWT中的常用組件及用法 1 容器 Container 21 20 第11頁 二 AWT中的常用組件及用法 1 容器 Container 21 20 第12頁 二 AWT中的常用組件及用法 1 容器 Container 21 20 第13頁 AWT使用Container類來定義最基本的組件容器 它有兩個(gè)常用的子類 Window類和Panel類 Window類還有兩個(gè)子類 定義對(duì)話框 用Dialog子類 定義一般意義的窗口 用Frame類 Frame可以用其構(gòu)造方法Fame String 來生成 其標(biāo)題由String參數(shù)指定 一個(gè)Frame剛被創(chuàng)建后 其初始大小為 0 0 而且是不可見的 所以為了使Frame顯示出來 必須在程序中顯式地設(shè)置一下它的大小 二 AWT中的常用組件及用法 1 容器 Container 21 20 第14頁 Panel可以使程序員更方便地組織自己的組件 得到賞心悅目的布局 Panel可以使用構(gòu)造方法Panel 生成 當(dāng)一個(gè)Panel對(duì)象被創(chuàng)建后 必須放在Window和Frame中才能可見 使用add 方法就可以將Panel添加到其他容器中 Applet是Panel的子類 因此在小應(yīng)用程序里可以直接加入構(gòu)件 而一般的應(yīng)用程序必須先定義構(gòu)件容器 小應(yīng)用程序在瀏覽器中所顯示的區(qū)域就是Panel 所占的尺寸就是缺省的Panel尺寸 瀏覽器本身也可以看作是一個(gè)容器 二 AWT中的常用組件及用法 1 容器 Container 21 20 第15頁 importjava awt publicclassMyFrameextendsFrame publicMyFrame Stringstr super str setSize 500 500 setBackground Color blue publicvoidshowDialog FileDialogfd newFileDialog this FileDialog fd setVisible true publicstaticvoidmain Stringargs MyFramefr newMyFrame Frame DialogTest fr setVisible true fr showDialog MyFrame java 21 20 第16頁 AppletWindow java importjava awt importjava applet publicclassAppletWindowextendsApplet publicvoidinit Buttonb1 newButton 確定 add b1 Buttonb2 newButton 取消 add b2 21 20 第17頁 二 AWT中的常用組件及用法 標(biāo)簽 Label 靜態(tài)文字 多用于指示信息 無事件 單行文本框 TextField 只能顯示一行信息 會(huì)產(chǎn)生多種事件 按鈕 Button 可點(diǎn)擊的用戶界面組件 當(dāng)組件被點(diǎn)擊是 產(chǎn)生AcitonEvent事件 21 20 第18頁 二 AWT中的常用組件及用法 復(fù)選框 Checkbox 提供簡(jiǎn)單的 on off 開關(guān) 同時(shí)旁邊還可以顯示說明信息 當(dāng)復(fù)選框狀態(tài)發(fā)生變化時(shí) 會(huì)產(chǎn)生ItemEvent事件 復(fù)選框組 CheckboxGroup 單選框 RadioButton 當(dāng)多個(gè)復(fù)選框組成一組時(shí) 就形成了單選框 復(fù)選框組中的復(fù)選框之間是相互關(guān)聯(lián)的 每次有且只有一個(gè)處于選中狀態(tài) 21 20 第19頁 列表 List 列表提供了很多文本選項(xiàng) 可以同時(shí)看到多項(xiàng) 也有滾動(dòng)條的支持 并且可以單選或多選 當(dāng)用戶單選或多選時(shí) 會(huì)產(chǎn)生ItemEvent事件 下拉式菜單 Choice 在下拉式菜單中有多個(gè)選項(xiàng) 但每次只能選擇一項(xiàng) 當(dāng)選擇發(fā)生時(shí) 會(huì)產(chǎn)生ItemEvent事件 文本輸入?yún)^(qū) TextArea 可以顯示多行信息 并且有滾動(dòng)條支持 按回車鍵后并不產(chǎn)生事件 如果要判斷是否完成輸入 需要用其他方法 如用一個(gè)結(jié)束按鈕 二 AWT中的常用組件及用法 21 20 第20頁 Checkboxadd newCheckbox one null true add newCheckbox two null false add newCheckbox three null false CheckboxGroupCheckboxGroupcbg newCheckboxGroup add newCheckbox one cbg true add newCheckbox two cbg false add newCheckbox three cbg false ChoiceChoicech newChoice ch add Green ch add Red ch add Blue add ch 二 AWT中的常用組件及用法 21 20 第21頁 ListListlst newList 4 false lst add Mercury lst add Venus lst add Earth lst add JavaSoft lst add Mars lst add Neptune add lst TextAreaadd newTextArea Hello 5 40 TextFieldTextFieldtf1 tf2 tf3 tf4 tf1 newTextField ablanktextfieldtf2 newTextField 20 blankfieldof20columnstf3 newTextField Hello predefinedtextdisplayedtf4 newTextField Hello 30 predefinedtextin30columns 21 20 第22頁 菜單菜單與其他組件不同 無法直接添加到容器的某一位置 也無法用布局管理器對(duì)其加以控制 它由以下概念支撐 菜單條 MenuBar 只能添加到Frame中 用setMenuBar 作為擺放菜單的容器 菜單 Menu 菜單項(xiàng)容器 負(fù)責(zé)顯示并控制其中的菜單項(xiàng) 它支持菜單嵌套 菜單項(xiàng) MenuItem 真正的動(dòng)作 可以用ActionListener監(jiān)聽其事件 ActionEvent 復(fù)選框菜單項(xiàng) CheckboxMenuItem 真正的動(dòng)作 可以用ItemListener監(jiān)聽其事件 ItemEvent 彈出式菜單 PopupMenu 與菜單 Menu 相似 也是菜單項(xiàng)容器 通過其show 方法來顯示菜單項(xiàng) 二 AWT中的常用組件及用法 21 20 第23頁 MenuBarmb Menum MenuItemmi1 mi2 CheckboxMenuItemmi3 Buildthemenubar mb newMenuBar setMenuBar mb Buildfirstmenuinthemenubar m newMenu Menu1 mb add m mi1 newMenuItem File m add mi1 mi2 newMenuItem Edit m add mi2 mi3 newCheckboxMenuItem Exit m add mi3 二 AWT中的常用組件及用法 21 20 第24頁 三 Java外觀布局的管理與控制 21 20 第25頁 在程序中安排組件的位置和大小時(shí) 應(yīng)注意 容器中布局管理器負(fù)責(zé)各組件的大小和位置 用戶無法在這種情況下設(shè)置組件的這些屬性 如試圖調(diào)用setLocation setSize setBounds 等 如果用戶確實(shí)需要自己設(shè)置組件的大小和位置 則應(yīng)取消該容器的布局管理器 方法為 setLayout null 但用戶必須使用setLocation setSize setBounds 等方法為組件設(shè)置大小和位置 不過程序?qū)⑾到y(tǒng)相關(guān) 三 Java外觀布局的管理與控制 21 20 第26頁 在容器中所有組件的布局都由布局管理器來控制 每個(gè)容器 如Panel Windows或Frame都有各自缺省的布局管理器 程序員也可以在程序中指定一個(gè)新的布局管理器 java awt類包中包含五種布局管理器 FlowLayout Panel和Applet的缺省布局管理器BorderLayout Window Dialog和Frame的缺省布局管理器GridLayoutCardLayoutGridBagLayout 三 Java外觀布局的管理與控制 21 20 第27頁 三 Java外觀布局的管理與控制 1 FlowLayout FlowLayout布局方式是將組件一排一排地依次放置 它自動(dòng)調(diào)用組件的getPreferredSize 方法 使用組件的最佳尺寸來顯示組件 當(dāng)容器被重新設(shè)置大小后 則布局也會(huì)隨之發(fā)生改變 各組件的大小不變 但相對(duì)位置會(huì)發(fā)生變化 FlowLayout類有三種構(gòu)造方法 publicFlowLayout 使用缺省居中對(duì)齊方式 組件間的水平和豎直間距為缺省值5個(gè)象素 publicFlowLayout intalignment 使用指定的對(duì)齊方式 FlowLayout LEFT FlowLayout Center FlowLayout RIGHT 0 1 2 水平和豎直間距為缺省值5象素 publicFlowLayout intalignment inthGap intvGap 使用指定的對(duì)齊方式 水平和豎直間距也為指定值 21 20 第28頁 GridLayout布局方式可以使容器中的各組件呈網(wǎng)格狀分布 容器中各組件的高度和寬度相同 當(dāng)容器的尺寸發(fā)生變化時(shí) 各組件的相對(duì)位置不變 但各自的尺寸會(huì)發(fā)生變化 各組件的排列方式為 從上到下 從左到右 與BorderLayout類相類似 如果想在一個(gè)網(wǎng)格單元中添加多個(gè)組件 則必須先在該網(wǎng)格單元放一個(gè)容器 再將多個(gè)組件放在該容器中 三 Java外觀布局的管理與控制 2 GridLayout 21 20 第29頁 GridLayout類有三種構(gòu)造方法 publicGridLayout 在一行中放置所有的組件 各組件間的水平間距為0象素 publicGridLayout introws intcols 生成一個(gè)rows行 cols列的管理器 最多能放置rows cols個(gè)組件 publicGridLayout introws intcols inthGap intvGap 各組件間的水平和豎直間距為指定值 三 Java外觀布局的管理與控制 2 GridLayout 21 20 第30頁 BorderLayout布局方式提供了更復(fù)雜的布局控制方法 它包括5個(gè)區(qū)域 North South East West和Center 其方位依據(jù)上北下南左西右東 當(dāng)容器的尺寸發(fā)生變化時(shí) 各組件的相對(duì)位置不變 但中間部分組件的尺寸會(huì)發(fā)生變化 南北組件的高度不變 東西組件的寬度不變 BorderLayout類有二種構(gòu)造方法 publicBorderLayout 各組件間的水平和豎直間距為缺省值0個(gè)象素 publicBorderLayout inthGap intvGap 各組件間的水平和豎直間距為指定值 三 Java外觀布局的管理與控制 3 BorderLayout 21 20 第31頁 如果容器使用了BorderLayout布局方式 則用add 方法往容器中添加組件時(shí)必須指明添加的位置 否則組件將無法正確顯示 不同的布局管理器 向容器中添加組件的方法也不同 add West newButton West add North newButton North add newButton South BorderLayout SOUTH 若沒有指明放置位置 則表明為默認(rèn)的 Center 方位 三 Java外觀布局的管理與控制 3 BorderLayout 21 20 第32頁 每個(gè)區(qū)域只能添加一個(gè)組件 若添加多個(gè) 則只能顯示一個(gè) 如果想在一個(gè)區(qū)域添加多個(gè)組件 則必須先在該區(qū)域放一個(gè)容器 再將多個(gè)組件放在該容器中 若每個(gè)區(qū)域或若干個(gè)區(qū)域沒有放置組件 東西南北區(qū)域?qū)⒉粫?huì)有預(yù)留 而中間區(qū)域?qū)⒅每?三 Java外觀布局的管理與控制 3 BorderLayout 21 20 第33頁 四 Java事件與事件處理 所謂事件 就是發(fā)生在用戶界面上的用戶交互行為而產(chǎn)生的一種效果 如鼠標(biāo)的各種動(dòng)作 鍵盤的操作以及發(fā)生在組件上的各種動(dòng)作 因此事件一般也分為三種類型 鍵盤事件 鼠標(biāo)事件以及組件的動(dòng)作事件 對(duì)鼠標(biāo)或鍵盤事件在一定程度上進(jìn)行了封裝 每發(fā)生一個(gè)事件 程序都需要作出相應(yīng)的響應(yīng) 這稱為事件處理 在JDK1 0和1 1中 事件表示以及事件的處理是采用不同的方式來完成的 21 20 第34頁 在JDK1 1中 事件處理模型將事件源 產(chǎn)生事件的組件 和對(duì)事件作出的具體處理 利用一種稱為監(jiān)聽器 listener 的實(shí)體來對(duì)事件進(jìn)行具體的處理 分開 一般情況下 組件 事件源 都不處理自己的事件 而是將事件處理委托給外部的處理實(shí)體 監(jiān)聽器 這種事件處理模型稱為事件的授權(quán)處理模型 不同的事件 可以交由不同類型的監(jiān)聽器去處理 所有的組件都從Component類中繼承了將事件處理授權(quán)給監(jiān)聽器的方法 addXXXListener ListenerTypelistener 所有的監(jiān)聽器接口都放在java awt event包中 四 Java事件與事件處理 21 20 第35頁 首先 對(duì)于某種類型的事件XXXEvent 要想接收并處理該類事件 必須定義相應(yīng)的事件監(jiān)聽器類 這個(gè)類需要實(shí)現(xiàn)針對(duì)該類事件的特定接口XXXListener 其次 要實(shí)現(xiàn)該類中對(duì)事件處理的所有方法 第三 對(duì)于事件源 必須使用addXXXListener XXXListener對(duì)象 注冊(cè)該類事件的監(jiān)聽器 以便當(dāng)事件產(chǎn)生時(shí) 能夠被監(jiān)聽器接收和處理 Test Exit ActionEvent Frame 事件源 監(jiān)聽器 MyListenerClass 四 Java事件與事件處理 actionPerformed ActionEvente 21 20 第36頁 publicclassMyFrameextendsFrame publicMyFrame Stringstr super str setLayout newFlowLayout setSize 300 200 Buttonb1 newButton Test Buttonb2 newButton Exit MyListenerClassbln newMyListenerClass b1 addActionListener bln b2 addActionListener bln add b1 add b2 publicstaticvoidmain Stringargs MyFramefr newMyFrame EventTest fr show classMyListenerClassimplementsActionListener publicvoidactionPerformed ActionEvente if e getActionCommand Test System out println ButtonTestpressed else System exit 0 四 Java事件與事件處理 21 20 第37頁 JDK1 1事件處理模型中的監(jiān)聽器都是通過實(shí)現(xiàn)在包java awt event中提供的監(jiān)聽器接口來獲得的 每種事件都對(duì)應(yīng)有相應(yīng)的監(jiān)聽器接口 事件的處理方法都已經(jīng)在該接口中定義了 interfaceKeyListenerextendsjava util EventListener publicvoidkeyPressed KeyEvente publicvoidkeyReleased KeyEvente publicvoidkeyTyped KeyEvente interfaceActionListenerextendsjava util EventListener publicvoidactionPerformed ActionEvente 監(jiān)聽器接口示例 四 Java事件與事件處理 21 20 第38頁 各AWT組件所產(chǎn)生的事件和事件所用的監(jiān)聽器 四 Java事件與事件處理 21 20 第39頁 21 20 第40頁 監(jiān)聽器注冊(cè)方法 MouseMotionListener mouseDragged MouseEvente mouseMoved MouseEvente WindowListener windowActivated WindowEvente windowClosed WindowEvente windowClosing WindowEvente windowDeactivated WindowEvente windowDeiconified WindowEvente windowIconified WindowEvente windowOpened WindowEvente 21 20 第41頁 MultiListener java 在一個(gè)監(jiān)聽器類中可以實(shí)現(xiàn)多個(gè)監(jiān)聽器接口 通過它可以同時(shí)監(jiān)聽同一個(gè)事件源上發(fā)生的多種事件 同時(shí) 通過事件可以獲得事件的詳細(xì)信息 四 Java事件與事件處理 21 20 第42頁 由于通過實(shí)現(xiàn)接口XXXListener來完成事件處理時(shí) 要同時(shí)實(shí)現(xiàn)該接口中的所有方法 通常我們只是需要對(duì)其中的某些方法做處理 而不想實(shí)現(xiàn)所有的無關(guān)方法 因此 為了方便起見 JDK1 1為某些監(jiān)聽器接口提供了適配器類 XXXAdapter 當(dāng)需要對(duì)某種事件進(jìn)行處理時(shí) 只需讓事件處理類繼承事件所對(duì)應(yīng)的適配器類 只重寫需要關(guān)注的方法即可 而無關(guān)的方法就不必實(shí)現(xiàn)了 適配器是一個(gè)類而不是接口 因而處理事件的類只能繼承一個(gè)適配器 當(dāng)該類需要處理多種事件時(shí) 通過繼承適配器類的方式是不行的 但可以基于適配器類 用內(nèi)嵌類 InnerClass 的方法來處理這種情況 MultiListener1 java 四 Java事件與事件處理 21 20 第43頁 Applet本身是一個(gè)AWT組件 因此可以對(duì)其中所發(fā)生的事件進(jìn)行處理 其處理與前面所講的圖形用戶界面程序的設(shè)計(jì)是一樣的 四 Java事件與事件處理 21 20 第44頁 五 Java小應(yīng)用程序的分析 1 Applet簡(jiǎn)介Java小應(yīng)用程序 JavaApplet 是使用Java語言編寫的一段代碼 它能夠在瀏覽器環(huán)境中運(yùn)行 Applet與Application地主要區(qū)別在于它們的執(zhí)行方式不同 Application是使用命令行命令直接運(yùn)行 從其main 方法開始運(yùn)行的 而Applet則是在瀏覽器中運(yùn)行的 首先必須創(chuàng)建一個(gè)HTML文件 通過編寫HTML語言代碼告訴瀏覽器載入何種Applet以及如何運(yùn)行 再在瀏覽器中給出該HTML文件的URL地址即可 Applet本身的執(zhí)行過程也較Application復(fù)雜 21 20 第45頁 回憶一下小應(yīng)用程序的書寫格式importjava applet publicclassMyAppletextendsApplet 每一個(gè)小應(yīng)用程序都繼承自java applet Applet類 并且每個(gè)小應(yīng)用都有一個(gè)主程序類 之前必須加上public 五 Java小應(yīng)用程序的分析 21 20 第46頁 2 Applet的執(zhí)行過程 21 20 第47頁 3 Applet的安全性 沙箱 機(jī)制 Java虛擬機(jī)為Applet提供能夠良好運(yùn)行的沙箱 一旦它們?cè)噲D離開沙箱則會(huì)被禁止 由于小應(yīng)用程序是通過網(wǎng)絡(luò)傳遞的 這就不可避免地使人想到會(huì)發(fā)生安全問題 例如有人編寫惡意程序通過小應(yīng)用程序讀取用戶密碼并散播到網(wǎng)絡(luò)上 這將會(huì)是一件非??膳碌氖虑?所以 必須對(duì)小應(yīng)用程序進(jìn)行限制 瀏覽器禁止Applet執(zhí)行下列操作 1 在運(yùn)行時(shí)調(diào)用其它程序 2 文件讀寫操作 3 裝載動(dòng)態(tài)連接庫和調(diào)用任何本地方法 4 試圖打開一個(gè)socket進(jìn)行網(wǎng)絡(luò)通信 但是所連接的主機(jī)并不是提供Applet的主機(jī) 五 Java小應(yīng)用程序的分析 21 20 第48頁 小應(yīng)用程序的限制 五 Java小應(yīng)用程序的分析 21 20 第49頁 看看我們以前學(xué)過的一個(gè)簡(jiǎn)單例子 importjava applet importjava awt publicclassHelloAppletextendsApplet publicStrings publicvoidinit s newString HelloWorld publicvoidpaint Graphicsg g drawString s 25 25 HelloApplet java 五 Java小應(yīng)用程序的分析 4 Applet的運(yùn)行控制 21 20 第50頁 Applet的運(yùn)行控制 五 Java小應(yīng)用程序的分析 21 20 第51頁 Applet的生命周期 五 Java小應(yīng)用程序的分析 21 20 第52頁 Applet中沒有main 方法 當(dāng)Applet被瀏覽器運(yùn)行時(shí) init start stop destroy 方法等自動(dòng)執(zhí)行 init 方法 初始化 自動(dòng)調(diào)用 只執(zhí)行一次 本方法主要完成一些在Applet構(gòu)造方法所不能完成的工作 start 方法 初始化后 重入等都將自動(dòng)調(diào)用 本方法是Applet的主體 在其中可以執(zhí)行一些任務(wù)或啟動(dòng)相關(guān)的線程來執(zhí)行任務(wù) stop 方法 離開Applet所在頁面時(shí)調(diào)用 以停止消耗系統(tǒng)資源 destroy 方法 瀏覽器關(guān)閉時(shí)自動(dòng)調(diào)用 以清除Applet所用的所有資源 五 Java小應(yīng)用程序的分析 21 20 第53頁 五 Java小應(yīng)用程序的分析 21 20 第54頁 Applet是從java awt Panel繼承而來 因此它本身也是一個(gè)容器 可以往其中添加其他的AWT組件 從而構(gòu)造更復(fù)雜 更有用的Applet程序 往Applet中添加其他AWT組件及其事件處理與前面所講的圖形用戶界面程序的設(shè)計(jì)是一樣的 五 Java小應(yīng)用程序的分析 21 20 第55頁 實(shí)驗(yàn) 組件的應(yīng)用實(shí)例 制作如下一個(gè)留言板的界面 按要求加入所需控件 并進(jìn)行窗口控件的布局 之后 按要求為按鈕 文本框 窗口添加事件 使之實(shí)現(xiàn)提交顯示留言 清屏 留言至頂和至尾等功能 21 20 第56頁 640 480 大笑痛苦 微笑- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- javajava 圖形 用戶界面 事件 處理
鏈接地址:http://m.jqnhouse.com/p-6358446.html