JAVA圖形用戶界面設(shè)計(jì)與實(shí)現(xiàn).ppt
《JAVA圖形用戶界面設(shè)計(jì)與實(shí)現(xiàn).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《JAVA圖形用戶界面設(shè)計(jì)與實(shí)現(xiàn).ppt(68頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
圖形用戶界面的設(shè)計(jì)與實(shí)現(xiàn) 教材第7章 設(shè)計(jì)原則容器與布局標(biāo)準(zhǔn)組件事件處理自定義成分 用戶界面設(shè)計(jì)原則 使用圖形界面GUI GraphicsUserInterface 字符界面 采用命令行方式與用戶交互 圖形界面 用多種媒體顯示信息 用直觀 方便的GUI標(biāo)準(zhǔn)組件來接收命令 控制權(quán)在用戶 用戶要由操作的主動(dòng)權(quán) 界面與操作的風(fēng)格一致性 寬容 容錯(cuò) 性 簡(jiǎn)潔與美觀并重 界面構(gòu)成 容器 標(biāo)準(zhǔn)組件 用戶自定義成分 創(chuàng)建GUI各組成成分 并安排相互位置關(guān)系 包含 相鄰 相交 定義GUI各成分對(duì)不同事件的響應(yīng) 實(shí)現(xiàn)與用戶的交互與界面功能 界面元素 容器是用來組織其他界面成分和元素的單元 可以形成容器的層次 構(gòu)筑復(fù)雜結(jié)構(gòu)Window Frame Applet Dialog 組件是圖形用戶界面的基本單位 它里面不再包含其他的成分 GUI組件是圖形用戶界面標(biāo)準(zhǔn)化的結(jié)果 GUI組件的作用是完成與用戶的交互 用戶自定義成分文字 圖形 圖象 不能像標(biāo)準(zhǔn)組件一樣被系統(tǒng)識(shí)別和承認(rèn) 只起裝飾作用 不能響應(yīng)用戶的動(dòng)作 不具有交互功能 AWT包 AbstractWindowsToolkit 抽象窗口工具 AWT類庫中的各種操作是被定義為在一個(gè)并不存在的 抽象窗口 中進(jìn)行的 抽取不同軟硬件平臺(tái)中所實(shí)現(xiàn)的窗口的公共特性 所設(shè)計(jì)的界面獨(dú)立于具體的界面實(shí)現(xiàn) 提供與機(jī)器無關(guān)的基本GUI標(biāo)準(zhǔn)組件 選擇類組件 單選按鈕 復(fù)選框 下拉選單 列表框 文字處理類組件 標(biāo)簽 文本框 編輯框 命令類組件 按鈕 工具欄 菜單 AWT類層次關(guān)系圖 Component Container Panel Applet Window Frame Dialog Button TextField TextArea TextComponent Checkbox MenuComponent Menu MenuItem MenuBar 其他組件 獨(dú)立 不獨(dú)立 Component類 可顯示在屏幕上的圖形對(duì)象 可與用戶交互 方法 add PopupMenupopup 加一彈出菜單addFocusListener FocusListenerl 將發(fā)生在本組件上的事件注冊(cè)給監(jiān)聽者 以進(jìn)行事件處理 setSize intwidth intheight 設(shè)置組件尺寸paint Graphicsg 重畫組件setFont Fontf 設(shè)置組件字體setBackground Colorc 設(shè)置組件背景色setForeground Colorc 設(shè)置組件前景色 paint和repaint方法 某組件的paint 和update 為系統(tǒng)自動(dòng)調(diào)用的有關(guān)圖形繪制的方法 不可人為編程調(diào)用 但可編程重新定義其操作內(nèi)容 使用repaint 方法可以觸發(fā)update 方法 Font類 java awt Font設(shè)計(jì)字體顯示效果 創(chuàng)建字體對(duì)象 Fontfn newFont String字體 int風(fēng)格 int字號(hào) 字體 TimesRoman Courier Arial等風(fēng)格 三個(gè)常量Font PLAIN Font BOLD Font ITALIC字號(hào) 字的大小 磅數(shù) 使用字體對(duì)象 如設(shè)置某組件當(dāng)前使用的字體 setFont Fontfn 獲取組件當(dāng)前使用的字體 getFont Color類 構(gòu)造函數(shù)1 設(shè)置顏色 Colorc newColor intred intgreen intblue 范圍 0 255newColor 200 200 200 newColor 255 0 100 構(gòu)造函數(shù)2Colorc newColor intrgb 蘭色 0 7位綠色 8 15位紅色 16 23位顏色常量值publicstaticfinalColorblackColor black Color blue Color gray Color redColor white Containers容器組件 Window 不需要其他組件支撐 獨(dú)立顯示 FrameDialog 沒有菜單條 不能改變大小Panel 必須放在Window組件中 或Web瀏覽器窗口 才能顯示 它為一矩形區(qū)域 在其中可擺放其他組件 可以有自己的布局管理器 基本方法add Componentcomp 將指定組件放到容器中add Componentcomp intindex remove Componentcomp 刪除指定組件setLayout LayoutManagermgr 設(shè)置容器布局paint畫容器 及其上面的組件 容器的組件布局 依靠布局管理器 layoutmanager 方式調(diào)用容器的setLayout方法 為容器指定某種布局管理器的一個(gè)對(duì)象 例 setLayout newFlowLayout 該布局管理器對(duì)象負(fù)責(zé)確定容器中組件的位置和大小 當(dāng)容器需要定位組件和確定組件大小時(shí) 就會(huì)給布局管理器對(duì)象發(fā)消息 讓它完成該項(xiàng)工作 直接管理組件方式調(diào)用容器的setLayout null 方法 關(guān)閉布局管理器 調(diào)用每一個(gè)組件的setLocation 方法決定組件位置 調(diào)用每一個(gè)組件的setSize 方法決定其大小 直接管理組件將失去平臺(tái)無關(guān)性 布局管理器對(duì)象 布局管理器種類 FlowLayout 組件在一行中從左至右水平排列 排滿后折行BorderLayout 北 南 東 西 中GridLayout 以行和列的網(wǎng)格形式安排組件GridBagLayout 更復(fù)雜 功能更強(qiáng)的網(wǎng)格布局CardLayout 每一個(gè)組件作為一個(gè)卡片 容器僅顯示多個(gè)卡片中的某一個(gè) 確定容器布局 缺省的布局管理器Window Frame Dialog BorderLayoutPanel Applet FlowLayout 選擇布局管理器的方法建立布局管理器類的對(duì)象利用容器的setLayout為容器指定布局 即指定一個(gè)布局管理器的對(duì)象 例 將myFrame布局設(shè)定為FlowLayout類型myFrame setLayout newFlowLayout Frame Frame Stringtitle 構(gòu)造一個(gè)新的不可見的frame隱含的布局管理器是 BorderLayoutsetLayout 設(shè)置新的布局管理器 add Componentcomp 在容器上增加一個(gè)組件 在容器為不可見的狀態(tài)時(shí)加 voidsetSize intwidth intheight setVisible true 7 1a Frame Panel Framefm1 newFrame Hello fm1 setSize 400 350 fm1 setBackground Color gray fm1 setLayout null Panelpn1 newPanel pn1 setSize 100 100 pn1 setBackground Color red pn1 setLocation 0 50 fm1 add pn1 fm1 setVisible true 7 1b FlowLayout布局管理器 構(gòu)造函數(shù) FlowLayout FlowLayout intalign inthgap intvgap align 對(duì)齊方式 LEFTCENTERRIGHThgap 組件水平間距 象素 vgap 組件垂直間距 象素 無參數(shù)的構(gòu)造函數(shù)創(chuàng)建的FlowLayout對(duì)象 其對(duì)齊方式為CENTER居中方式 組件間的橫縱間距都為5個(gè)像素 FlowLayout布局管理器 Framef newFrame FlowLayout f setSize 400 300 不起作用f setBackground Color gray f setLayout newFlowLayout FlowLayout LEFT 10 20 b1 newButton button1 b2 newButton button2 b3 newButton button3 f add b1 f add b2 f add b3 f setVisible true f pack 7 1c BorderLayout布局管理器 setLayout newBorderLayout add b1 BorderLayout NORTH 當(dāng)容器大小改變 組件相對(duì)位置不會(huì)改變 BorderLayout布局管理器 f newFrame BorderLayout f setSize 200 200 b1 newButton button1 b5 newButton button5 f add b1 BorderLayout NORTH f add b2 BorderLayout SOUTH f add b3 BorderLayout WEST f add b4 BorderLayout EAST f add b5 BorderLayout CENTER f setVisible true 7 1d Border Panel classMyFrameextendsFrame MyFrame Buttonb1 newButton 1 Buttonb2 newButton 2 Buttonb3 newButton 3 Buttonb4 newButton 4 Panelp newPanel p add b1 p add b2 add p BorderLayout NORTH add b3 BorderLayout WEST add b4 BorderLayout CENTER pack setVisible true 7 1e GridLayout布局管理器 創(chuàng)建GridLayout對(duì)象作為布局編輯器 指定劃分網(wǎng)格的行數(shù)和列數(shù) 網(wǎng)格大小一樣 setLayout newGridLayout 行數(shù) 列數(shù) setLayout newGridLayout 行數(shù) 列數(shù) 行間隔 列間隔 調(diào)用容器的方法add 將組件加入容器 組件填入容器的順序?qū)凑盏谝恍械谝粋€(gè)格中 第一行第二個(gè)格中 每個(gè)網(wǎng)格中都必須填入組件 如果希望某個(gè)網(wǎng)格為空白 可以為它加入一個(gè)空的標(biāo)簽 add newLabel GridLayout布局管理器 f newFrame GridLayout f setLayout newGridLayout 2 3 f setSize 200 100 f setBackground Color gray b1 newButton 1 b6 newButton 6 f add b1 f setVisible true 7 1f 布局例 Framefm newFrame fm setLayout newFlowLayout tf newTextField 22 fm add tf Panelp1 newPanel p1 setLayout newGridLayout 4 3 p1 add Panelp2 newPanel p2 setLayout newGridLayout 4 3 p2 add fm add p1 fm add p2 7 2布局 GridBagLayout布局管理器 每個(gè)GridBagLayout對(duì)象維護(hù)一個(gè)動(dòng)態(tài)矩形網(wǎng)格 每個(gè)組件可占據(jù)一個(gè)或多個(gè)單元作為它的顯示區(qū)域 每一個(gè)組件都與一個(gè)GridBagConstraints類的實(shí)例相連 以指定在顯示區(qū)域中如何擺放 并可確定大小 步驟 setLayout newGridBagLayout GridBagConstraintsgbc newGridBagConstraints gbc gridx 0 屬性賦值 add button1 gbc GridBagLayout布局管理器 設(shè)置GridBagConstraints類實(shí)例屬性值 gridxgridy組件顯示區(qū)域的左上角單元格坐標(biāo)gridwidthgridheight指定顯示區(qū)域行 列單元數(shù)RELATIVE指定緊挨著前一個(gè)組件擺放fill當(dāng)顯示區(qū)域大于組件時(shí)如何擴(kuò)充組件 HORIZONTAL水平充滿VERTICAL垂直充滿BOTH全部填充NONE不調(diào)整 隱含 ipadxipady指定組件間最小間隔anchor當(dāng)顯示區(qū)域大于組件時(shí)如何擺放組件 CENTER 隱含 NORTH EAST SOUTH WEST SOUTHEAST NORTHEAST SOUTHWEST NORTHWEST CardLayout布局管理器 將每一個(gè)組件視為一張卡片 同一時(shí)刻只能顯示一個(gè)組件 setLayout newCardLayout CardLayout方法 按序指定組件 first Containerparent last Containerparent previous Containerparent next Containerparent CardLayout方法 按名顯示組件 addLayoutComponent Stringname Componentc show Containerparent Stringname 事件及處理機(jī)制 用戶操作GUI組件時(shí)會(huì)引發(fā)各種事件 事件 描述 發(fā)生了什么事情 的對(duì)象 系統(tǒng)根據(jù)用戶的操作構(gòu)造出相應(yīng)事件類的對(duì)象 事件源 事件的產(chǎn)生地 事件處理程序 是一個(gè)方法 它接收一個(gè)事件對(duì)象 分析它 并完成對(duì)該事件的處理 每個(gè)事件有一個(gè)相應(yīng)的監(jiān)聽者接口 它規(guī)定了能夠接收 并處理 該類事件的方法的規(guī)范 監(jiān)聽者 實(shí)現(xiàn)了監(jiān)聽者接口的類 它包含有事件處理程序 編程人員要為事件源指定監(jiān)聽者對(duì)象 即指定處理某種事件的事件處理程序 監(jiān)聽者對(duì)象方法 鼠標(biāo)單擊按扭 事件及處理機(jī)制 ActionEvent事件 publicvoidactionPerformed ActionEvente ActionListener接口 ActionEvent事件 監(jiān)聽者類 監(jiān)聽者對(duì)象 調(diào)用按扭的addActionListener 方法 為該按扭指定監(jiān)聽者 實(shí)現(xiàn)接口 事件類 ActionEvent類 存放這個(gè)事件的細(xì)節(jié) 該類的方法有 getSource 返回事件發(fā)生的對(duì)象 名 getActionCommand 返回按扭名 ActionListener接口publicvoidactionPerformed ActionEvente 圖形用戶界面例 importjava awt importjava awt event publicclassa publicstaticvoidmain Stringargs MyFrameform1 newMyFrame classMyFrameextendsFrame MyFrame super 窗口標(biāo)題 setSize 200 100 setFont newFont TimesRoman Font BOLD 20 圖形用戶界面例 setLayout newFlowLayout Buttonb newButton close add b b addActionListener newBprocess setVisible true classBprocessimplementsActionListener publicvoidactionPerformed ActionEvente System exit 0 監(jiān)聽者類 某個(gè)類可以兼職也可以專職做這件事 實(shí)現(xiàn)監(jiān)聽者接口 一個(gè)類若實(shí)現(xiàn)一個(gè)接口 必須實(shí)現(xiàn)接口的全部方法 例如 ActionListener接口只有一個(gè)方法 voidactionPerformed ActionEvente 實(shí)現(xiàn)接口的類可以是 一般類內(nèi)部類匿名類 7 3一般類 7 4內(nèi)部類 7 5匿名類 事件處理有關(guān)問題 有哪些事件類 java awt event 每個(gè)事件類的監(jiān)聽者接口 每個(gè)監(jiān)聽者接口規(guī)定的方法 多方法的監(jiān)聽者接口的適配器 實(shí)現(xiàn)接口的抽象類 是什么 組件的事件委托 注冊(cè) 方法 窗口事件 適配器說明 關(guān)閉窗口框時(shí)引發(fā)WindowEvent事件委托 addWindowListener newWclose 定義監(jiān)聽者類classWcloseimplementsWindowListener publicvoidwindowClosing WindowEvente System exit 0 其他方法 窗口事件 WindowListener類有7個(gè)方法 都必須實(shí)現(xiàn) windowActivated WindowEvente windowClosed WindowEvente windowClosing WindowEvente windowDeactivated WindowEvente windowDeiconified WindowEvente windowIconified WindowEvente windowOpened WindowEvente WindowAdapter 系統(tǒng)實(shí)現(xiàn)的處理窗口事件的抽象適配器類 用空內(nèi)容實(shí)現(xiàn)了WindowListener接口的全部7個(gè)方法 classWcloseextendsWindowAdapter 僅須編寫需要的方法 ActionEvent事件 引發(fā)原因 單擊按扭 雙擊列表框中選項(xiàng) 選擇菜單項(xiàng) 文本框中的回車事件監(jiān)聽接口 ActionListener接口方法 actionPerformed ActionEvente 組件注冊(cè)該事件方法 addActionListener 監(jiān)聽者對(duì)象 TextEvent事件 引發(fā)原因 文本框或文本區(qū)域內(nèi)容改變事件監(jiān)聽接口 TextListener接口方法 textValueChanged TextEvente 組件注冊(cè)該事件方法 addTextListener 監(jiān)聽者對(duì)象 ItemEvent事件 引發(fā)原因 改變列表框中的選中項(xiàng)改變復(fù)選框選中狀態(tài)改變下拉選單的選中項(xiàng)事件監(jiān)聽接口 ItemListener接口方法 itemStateChanged ItemEvente 組件注冊(cè)該事件方法 addItemListener 監(jiān)聽者 AdjustmentEvent事件 引發(fā)原因 操作滾動(dòng)條改變滑塊位置事件監(jiān)聽接口 AdjustmentListener接口方法 adjustmentValueChanged AdjustmentEvente 組件注冊(cè)該事件方法 addAdjustmentListener 監(jiān)聽者 KeyEvent事件 引發(fā)原因 敲完鍵 KEY TYPED 按下鍵 KEY PRESSED 釋放鍵 KEY RELEASE 事件監(jiān)聽接口 KeyListener接口方法 keyPressed KeyEvente 鍵已被按下時(shí)調(diào)用keyReleased KeyEvente 鍵已被釋放時(shí)調(diào)用keyTyped KeyEvente 鍵已被敲完時(shí)調(diào)用KeyEvent方法 charch e getKeyChar 事件監(jiān)聽適配器 抽象類 KeyAdapter組件注冊(cè)該事件方法 addKeyListener 監(jiān)聽者 MouseEvent事件 引發(fā)原因 鼠標(biāo)作用在一個(gè)組件上 鼠標(biāo)事件 鼠標(biāo)鍵按下 鼠標(biāo)鍵抬起 單擊鼠標(biāo) 鼠標(biāo)光標(biāo)進(jìn)入一個(gè)組件 鼠標(biāo)光標(biāo)離開一個(gè)組件 鼠標(biāo)移動(dòng)事件 鼠標(biāo)移動(dòng) 鼠標(biāo)拖動(dòng)鼠標(biāo)事件監(jiān)聽接口1 MouseListener接受鼠標(biāo)事件該接口定義的方法 mouseClicked MouseEvente mouseEntered MouseEvente 鼠標(biāo)光標(biāo)進(jìn)入一個(gè)組件mouseExited MouseEvente 鼠標(biāo)光標(biāo)離開一個(gè)組件鼠標(biāo)事件監(jiān)聽適配器 抽象類 MouseAdapter MouseEvent事件 續(xù) 鼠標(biāo)事件監(jiān)聽接口2 MouseMotionListener接受鼠標(biāo)移動(dòng)事件該接口方法 mouseMoved MouseEvente 鼠標(biāo)光標(biāo)在組件上移動(dòng)mouseDragged MouseEvente 用鼠標(biāo)拖動(dòng)一個(gè)組件鼠標(biāo)移動(dòng)事件監(jiān)聽適配器MouseMotionAdapter組件注冊(cè)鼠標(biāo)事件方法 addMouseListener 監(jiān)聽者 組件注冊(cè)鼠標(biāo)移動(dòng)事件方法 addMouseMotionListener 監(jiān)聽者 MouseEvent事件 續(xù) MouseEvent方法e getClickCount 1單擊 2雙擊Pointe getPoint 取鼠標(biāo)光標(biāo)位置inte getX inte getY 取鼠標(biāo)光標(biāo)位置e getModifiers e BUTTON1 MASK鼠標(biāo)左鍵 e BUTTON3 MASK鼠標(biāo)右鍵 7 6鼠標(biāo)事件 WindowEvent事件 引發(fā)原因 有關(guān)窗口操作引發(fā)的事件事件監(jiān)聽接口WindowListener接口方法windowActivated WindowEvente 激活窗口windowClosed WindowEvente 調(diào)用dispose方法關(guān)閉窗口后 windowClosing WindowEvente 試圖利用窗口關(guān)閉框關(guān)閉窗口windowDeactivated WindowEvente 本窗口成為非活動(dòng)窗口 WindowEvent事件 續(xù) windowDeiconified WindowEvente 窗口從最小化恢復(fù)為普通窗口windowIconified WindowEvente 窗口變?yōu)樽钚』瘓D標(biāo)windowOpened WindowEvente 當(dāng)窗口第一次打開成為可見時(shí)接口適配器WindowAdapter注冊(cè)事件方法addWindowListener FocusEvent事件 引發(fā)原因 組件獲得焦點(diǎn)組件失去焦點(diǎn)事件監(jiān)聽接口FocusListener接口方法 focusGained FocusEvente 組件獲得焦點(diǎn)時(shí)調(diào)用focusLost FocusEvente 組件失去焦點(diǎn)時(shí)調(diào)用接口適配器 FocusAdapter組件注冊(cè)該事件方法 addFocusListener TextEvent事件 引發(fā)原因 當(dāng)組件 如文本框 文本改變時(shí)引發(fā)事件監(jiān)聽接口 TextListener接口方法 textValueChanged TextEvente 組件注冊(cè)該事件方法 addTextListener ComponentEvent事件 引發(fā)原因 當(dāng)組件移動(dòng) 改變大小 改變可見性時(shí)引發(fā)事件監(jiān)聽接口 ComponentListener接口方法 componentHidden ComponentEvente 組件隱藏componentMoved ComponentEvente 組件移動(dòng)componentResized ComponentEvente 組件改變大小componentShown ComponentEvente 組件變?yōu)榭梢娊涌谶m配器ComponentAdapter組件注冊(cè)該事件方法 addComponentListener ContainerEvent事件 引發(fā)原因 當(dāng)容器內(nèi)增加或移走組件時(shí)引發(fā)事件監(jiān)聽接口 ContainerListener接口方法componentAdded ContainerEvente 容器內(nèi)加入組件componentRemoved ContainerEvente 從容器中移走組件接口適配器ContainerAdapter容器注冊(cè)該事件方法 addContainerListener 標(biāo)準(zhǔn)組件簡(jiǎn)介 Label 標(biāo)簽 構(gòu)造函數(shù)Labela newLabel information Labela newLabel information Label CENTER 方法a setText 新內(nèi)容 設(shè)置標(biāo)簽內(nèi)容Stringa getText 讀取標(biāo)簽內(nèi)容Button 按鈕 ButtonmyB newButton Cancel Checkbox組件 構(gòu)造函數(shù)Checkbox Stringlabel Checkbox Stringlabel booleanstate Checkbox Stringlabel booleanstate CheckboxGroupgroup 方法 booleangetState setState booleanstate CheckboxGroup組件 將一組Checkbox按扭組成單選按扭組件 例setLayout newGridLayout 3 1 CheckboxGroupcbg newCheckboxGroup Checkboxck1 newCheckbox one true cbg Checkboxck2 newCheckbox two false cbg Checkboxck3 newCheckbox three false cbg 方法 CheckboxgetSelectedCheckbox setSelectedCheckbox Checkboxbox TextField行編輯框組件 構(gòu)造函數(shù)TextFieldf1 newTextField 30 TextFieldf1 newTextField abc 30 建30個(gè)字符寬的行編輯框方法 StringgetText 讀文本框內(nèi)容setText abc 設(shè)置編輯框內(nèi)容setEchoChar charc 設(shè)置回顯字符TextComponent方法 setEditable false selectAll 7 7計(jì)算器 TextArea編輯框組件 構(gòu)造函數(shù)TextAreata1 newTestArea 10 45 建10行 45列的文本區(qū)域TextAreata1 newTestArea abc 10 45 TextAreata1 newTestArea abc 10 45 滾動(dòng)條 滾動(dòng)條指定SCROLLBARS BOTHSCROLLBARS HORIZONTAL ONLYSCROLLBARS VERTICAL ONLYSCROLLBARS NONE方法append Stringstr 追加文本 List列表框 首先創(chuàng)建List對(duì)象 再調(diào)用add 方法加入List列表的各選項(xiàng)構(gòu)造函數(shù)List introws booleanmultipleMode rows顯示行數(shù) multipleMode是否允許多選方法 list1 add classA list1 add classB list1 add classC 0 指定加入選項(xiàng)位置 List列表框 方法intgetSelectedIndex 取被選項(xiàng)索引int getSelectedIndexes 取被選項(xiàng)索引 多選 StringgetSelectedItem 取被選項(xiàng)String getSelectedItems 取被選項(xiàng) 多選 voidselect intindex 選中指定的項(xiàng)StringgetItem intindex 按索引號(hào)取出該項(xiàng)intgetItemCount 取出項(xiàng)數(shù)String getItems 取出所有的項(xiàng) Choice下拉選單 例ChoiceColorChooser newChoice ColorChooser add Green ColorChooser add Red ColorChooser add Blue StringgetSelectedItem Scrollbar滾動(dòng)條 構(gòu)造函數(shù)mySlider newScrollbar Scrollbar HORIZONTAL 0 1 0 Integer MAX VALUE 滾動(dòng)條方向滑塊初始位置滑塊尺寸滾動(dòng)槽最小值滾動(dòng)槽最大值方法intgetValue 返回滑塊當(dāng)前位置setUnitIncrement 1 設(shè)置單位增量 點(diǎn)按兩端箭頭 setBlockIncrement 50 設(shè)置塊增量 點(diǎn)按滾動(dòng)槽 7 8滾動(dòng)條 菜單 創(chuàng)建菜單條 MenuBar MenuBarm MenuBar newMenuBar 創(chuàng)建菜單 Menu 加入菜單條MenumenuFile newMenu File 創(chuàng)建菜單m MenuBar add menuFile 將菜單加入菜單條創(chuàng)建菜單項(xiàng) MenuItem 加入相應(yīng)菜單MenuItemf1 newMenuItem Open 創(chuàng)建各菜單項(xiàng)MenuItemf2 newMenuItem Close menuFile add f1 加入菜單menuFile add f2 將菜單條放入frame myFrame setMenuBar m MenuBar 編寫響應(yīng)菜單操作的代碼 ActionEvent 7 9菜單 文件對(duì)話框 FileDialog Frameparent Stringtitle intmode parent對(duì)話框所屬窗體title對(duì)話框標(biāo)題mode對(duì)話框模式FileDialog LOAD打開文件FileDialog SAVE保存文件 文件對(duì)話框 classMyFrameextendsFrame MyFramegetMyFrameIns returnthis 子類方法代碼片段 FileDialogf newFileDialog getMyFrameIns open FileDialog SAVE f setVisible true Stringfname f getDirectory f getFile ig getToolkit getImage fname 繪制用戶自定義成分 一般在容器中 窗口 或畫布上繪制 利用Java awt類庫中的類及其方法繪制用戶自定義的圖形界面成分 Graphics類包含很多繪制圖形和文字的方法 首先要獲得Graphics類的實(shí)例 然后利用其方法繪制 Graphics類的實(shí)例一般作為相關(guān)方法的參數(shù)傳遞進(jìn)來 paint Graphicsg 坐標(biāo)規(guī)定 paint和repaint方法 某組件的paint 和update 為系統(tǒng)自動(dòng)調(diào)用的有關(guān)圖形繪制的方法 不可人為編程調(diào)用 但可編程重新定義其操作內(nèi)容使用repaint 方法可以觸發(fā)update 方法 Graphics的方法 drawLine x1 y1 x2 y2 直線drawRect x y w h 矩形drawOval x y w h 圓或橢圓fillOval x y w h 實(shí)心圓或橢圓drawPolygon X坐標(biāo)數(shù)組 Y坐標(biāo)數(shù)組 個(gè)數(shù) 畫多邊形drawArc x y w h 開始角度 弧度角度 setColor Colorc 置顏色setFont Fontf 置字體getColor getFont 7 10 Graphics的方法 DrawImage Imageimg intx inty this 顯示圖像的方法第一個(gè)參數(shù)是保存圖像數(shù)據(jù)的Image對(duì)象 第二 三個(gè)參數(shù)是圖像的左上角坐標(biāo) 它們決定了圖像在容器中的顯示位置 最后一個(gè)參數(shù)是顯示圖像的容器對(duì)象 staticToolkitgetToolkit getTookit getImage 文件名 7 11動(dòng)畫 圖象顯示方法 讀取圖片 顯示圖片在application中使用ToolKit類的getImage方法取得圖片 Imageig getToolkit getImage 文件名 然后用Graphics類的drowImage方法顯示Image對(duì)象 在applet小程序中 可使用Applet類的getImage方法獲得圖象 Imageig getImage 綜合題 7 2綜合- 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) 鍵 詞:
- JAVA 圖形 用戶 界面設(shè)計(jì) 實(shí)現(xiàn)
鏈接地址:http://www.3dchina-expo.com/p-6359907.html