版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、圖形繪制 創(chuàng)建一個框架 在面板中顯示信息 2D圖形(顏色,文本和字體) AWT事件處理機制 事件處理基礎(chǔ) AWT事件 鍵盤事件 鼠標事件,第五章 圖形程序設(shè)計,JAVA GUI 組件,包Swing和包AWT GUI 分類 容器類: JFrame, JPanel, JApplet, 輔助類: Graphics, Color, Font, (在AWT包中) 組件類: JButton, JLabel, (在Swing包中),創(chuàng)建一個框架,頂層窗口 JFrame常用方法 setVisible,setTitle,setSize,setIconImage,setJMenuBar,setResizable,
2、 setLocation,dispose 例:SimpleFrameTest.java 框架定位 例:CenteredFrameTest.java 向框架中添加組件 例: FrameWithComponent.java,Container contentPane= getContentPane( ); 組件類 c=new ; contentPane.add(c) ;,在面板中顯示信息,為了在面板中進行繪制,需要實現(xiàn) (1)定義一個擴展JPanel的新類 (2)重寫paintComponent方法 注意:永遠不要自己調(diào)用該方法,如果需要強制重繪屏幕,調(diào)用repaint方法。,通常,在面板上繪制信
3、息,然后將面板添加到框架中,2D圖形,Graphics中提供了很多方法繪制圖形; Java 2D類庫中實現(xiàn)了更強大的圖形操作集,使用Graphics2D中提供的方法進行繪制。,public void paintComponent(Graphics g) Graphics2D g2=(Graphics2D )g; ,Java 2D庫使用面向?qū)ο蟮姆绞浇M織幾何形體。例如,分別有不同的類代表直線,矩形和橢圓:Line2D , Rectangle2D , Ellipse2D,Rectangle rect=; g2.draw(rect);,2D圖形,2D圖形, 直線,Line line=new Line
4、2D.Double(startx,starty,endx,endy); g2.draw(line);,/使用左上頂點的坐標、寬度和高度 Rectangle2D doubleRect=new Rectangle2D.Double(startx,starty,width,height); /使用對腳線上的兩個頂點 Rectangle2D doubleRect=new Rectangle2D.Double( ); doubleRect.setFrameFromDiagonal(x1,y1,x2,y2);, 矩形,2D圖形,2D圖形,顏色,setPaint方法(對于Graphics2D) java.a
5、wt.Color提供了13種標準顏色;通過創(chuàng)建Color對象來定制一種顏色;,Graphics2D g2=; g2.setPaint(Color.RED); /使用Color中的標準顏色 g2.setPaint(new Color(0,128,128);/參數(shù)為紅綠藍比例,0-255 g2.setPaint(SystemColor.windowText);/使用SystemColor中顏色 /將框架的背景顏色設(shè)置成用戶桌面窗口使用的默認值 frame.setBackground(SystemColor.window);,2D圖形,填充圖形,使用fill方法,可用一種顏色填充閉合的圖形。,Rec
6、tangle2D rect=; g2.setPaint(Color.RED); g2.fill(rect);,例:FillTest.java,2D圖形,文本和字體(Font),可以使用字體名來指定字體 ; 可以通過調(diào)用GraphicsEnvironment類的getAvailableFamilyNames 方法,找到一個計算機中的可用字體; AWT定義了五個邏輯字體名: ScansSerif, Serif, Monospaced, Dialog, DialogInput,例:ListFont.java, FontTest.java,圖形編程 創(chuàng)建一個框架 在面板中顯示信息(擴展JPanel類,
7、重寫paintComponent ) 顯示文本(drawString,F(xiàn)ont) 顯示2D圖形(Graphics2D,draw,fill,圖形類,Color),回顧,小結(jié),AWT事件處理機制 事件處理基礎(chǔ) AWT事件 鍵盤事件 鼠標事件,AWT事件處理基礎(chǔ),基本概念,事件:用戶對組件的一個操作 事件源:發(fā)生事件的組件 事件監(jiān)聽器:包含處理事件的方法,是一個實現(xiàn)專門的監(jiān)聽器接口的類的對象,組件(事件源),事件監(jiān)聽器,1.事件監(jiān)聽器注冊,外部作用,事件對象,3.生成事件對象,4.將事件對象傳遞 給事件監(jiān)聽器,2,例:EventFocus.java, EventWindos.java,AWT事件處理
8、基礎(chǔ),基本格式,定義事件監(jiān)聽器類(實現(xiàn)某個監(jiān)聽器接口) 注冊事件監(jiān)聽器 eventSourceObject.addEventListener(eventListenerObject);,例:ButtonTest.java,MyListener listener=; JButton button=new JButton(“OK”); button.addActionListener(listener);,class MyListener implements ActionListener public void actionPerformed(ActionEvent event) ,AWT事件處
9、理基礎(chǔ),事件,事件源和事件監(jiān)聽器,組件(事件源),事件監(jiān)聽器2,外部作用,事件對象1,事件對象2,事件監(jiān)聽器1,. . .,. . .,一個事件源上注冊多個不同類型的事件監(jiān)聽器,AWT事件處理基礎(chǔ),事件,事件源和事件監(jiān)聽器,組件1(事件源1),外部 作用,事件對象,事件監(jiān)聽器,. . .,組件2(事件源2),多個事件源的同一事件可由一個事件監(jiān)聽器處理,AWT事件處理基礎(chǔ),事件,事件源和事件監(jiān)聽器,外部 作用,事件對象,事件監(jiān)聽器2,. . .,組件(事件源),一個事件源可以注冊對同一事件進行處理的多個事件監(jiān)聽器,事件監(jiān)聽器1,AWT事件,常見事件類型, ActionEvent ItemEven
10、t AdjustmentEvent KeyEvent MouseEvent MouseWheelEvent FocusEvent WindowEvent,AWT事件,常見事件類型,EventObject,AWTEvent,ActionEvent,Adjustment Event,Component Event,ItemEvent,FocusEvent,InputEvent,PaintEvent,WindowEvent,KeyEvent,MouseEvent,MouseWheelEvent,AWT事件,常見事件類型,監(jiān)聽器接口,ActionListener ItemListeer MouseMo
11、tionListener AdjustmentListener KeyListener WindowFocusListener MouseListener MouseWheelListener WindowStateListener FocusListener WindowListener, ActionEvent ItemEvent AdjustmentEvent KeyEvent MouseEvent MouseWheelEvent FocusEvent WindowEvent,按鈕點擊、菜單選擇、選擇列表項、在文本域中鍵入enter,用戶調(diào)節(jié)滾動條,鼠標鍵被按下、釋放、移動或拖動,某個組
12、件獲得焦點或失去焦點,用戶從復(fù)選框或列表項中選擇一項,一個鍵被按下或釋放,鼠標滾輪被轉(zhuǎn)動,窗口狀態(tài)被改變,鍵盤事件, 鍵盤事件監(jiān)聽器類必須實現(xiàn)KeyListener的keyPressed, keyReleased , keyTyped方法;或者直接繼承KeyAdapter類 。 并不是每一次擊鍵都會引發(fā)對keyTyped方法的調(diào)用,只有能夠生成一個Unicode字符的擊鍵動作才會引起該方法的調(diào)用。因而,可在keyPressed方法中檢查光標鍵或其他命令鍵。 Java明確區(qū)分字符和虛擬鍵碼(與鍵盤的鍵一一對應(yīng),例如,VK_A,VK_SHIFT)。,例:KeyEventTest.java,KeyE
13、ventMovingHello.java,Sketch.java,public void keyPressed(KeyEvent event) int keyCode=event.getKeyCode(); if(keyCode=KeyEvent.VK_RIGHT) public void keyTyped(KeyEvent event) char c=event.getKeyChar( );,鼠標事件, 鼠標事件監(jiān)聽器接口: MouseListener: mouseClicked, mouseEntered , mouseExited , mousePressed, mouseReleased MouseMotionListener :mouseDragged,mouseMoved,例:SimpleMouseTest.java,MouseTest.java,定時器類Timer, 按照預(yù)定的頻
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球人形機器人主要廠商競爭策略與市場份額分析報告
- 2026年全國AWS認證解決方案架構(gòu)師模擬題及答案
- 物流倉庫智能化改造項目實施方案
- 企業(yè)內(nèi)部控制自查工作方案
- 幼兒園秋季感恩節(jié)主題活動方案
- 除塵設(shè)備技術(shù)培訓(xùn)課件
- 陳澤介紹教學(xué)課件
- 數(shù)字化采購流程優(yōu)化方案
- 《貨幣時間價值》課件
- 醫(yī)院護理質(zhì)量控制與護士績效考核方案
- 南寧陳教練2026年版考試大綱廣西專升本與職教高考(財經(jīng)商貿(mào)大類)考試大綱對比分析及備考攻略
- 滅菌物品裝載課件
- 2025至2030中國電力設(shè)備檢測行業(yè)項目調(diào)研及市場前景預(yù)測評估報告
- 2025上半年軟考系統(tǒng)架構(gòu)設(shè)計師考試真題及答案
- 尾礦綜合利用技術(shù)在生態(tài)環(huán)境保護中的應(yīng)用與經(jīng)濟效益分析報告
- 政務(wù)信息化統(tǒng)一建設(shè)項目監(jiān)理服務(wù)方案投標文件(技術(shù)方案)
- 2025年蘇州市事業(yè)單位招聘考試教師招聘體育學(xué)科專業(yè)知識試卷
- 加油站投訴處理培訓(xùn)課件
- 畢業(yè)設(shè)計(論文)-基于PLC的醫(yī)院病房呼叫系統(tǒng)設(shè)計
- 外出黨員屬地管理制度
- 買賣合同爭議仲裁應(yīng)訴答辯書范本
評論
0/150
提交評論