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

正文內(nèi)容

[工學(xué)]java2實(shí)用教程課件第3版第7章-資料下載頁

2025-10-09 23:37本頁面
  

【正文】 MenuItem) , 并 加入相應(yīng)菜單 MenuItem f1= new MenuItem(“Open”), //創(chuàng)建各菜單項(xiàng) MenuItem f2 = new MenuItem(Close), (f1)。 //加入菜單 (f2)。 ? 將菜單條放入 frame: (m_MenuBar)。 ? 編寫響應(yīng)菜單操作的代碼 (ActionEvent) 例: class MenuFrame extends Frame { Label lb=new Label(“here es mand”)。//模擬菜單命令 MenuBar m_MenuBar=new MenuBar()。 //創(chuàng)建 菜單條 Menu menuFile = new Menu(“File”)。 //創(chuàng)建菜單 MenuItem[] file={new MenuItem(“Open”), //創(chuàng)建各菜單項(xiàng) new MenuItem(Close), new MenuItem(Exit) }。 MenuFrame() { (menuFile)。 //把菜單加入菜單條 (file[0])。 //把各菜單項(xiàng)加入菜單 (file[1])。 (file[2])。 setMenuBar(m_MenuBar)。 //把菜單條加入 Frame setLayout(new FlowLayout())。 add(lb)。 //加入 Label, 用于輸出菜單項(xiàng)命令 ActionListener ml=new ML()。 for(int i=0。i3。i++){ //為每個(gè)菜單項(xiàng)注冊(cè)監(jiān)聽者 file[i].addActionListener(ml)。 //此例 多個(gè)菜單項(xiàng) } //對(duì)應(yīng)一個(gè)監(jiān)聽者 , 但實(shí)際編程時(shí)建議使用一對(duì)一結(jié)構(gòu) addWindowListener(new WL())。 } class ML implements ActionListener { //Action事件監(jiān)聽者類 public void actionPerformed(ActionEvent e) { (())。 //輸出菜單命令 } } … … … … } 文件對(duì)話框 FileDialog(Frame parent, String title, int mode) ? parent 對(duì)話框所屬窗體 ? title 對(duì)話框標(biāo)題 ? mode 對(duì)話框模式 ? 打開文件 ? 保存文件 文件對(duì)話框 class MyFrame extends Frame{ … MyFrame getMyFrameIns(){ return this。 } 子類方法代碼片段: FileDialog f = new FileDialog( getMyFrameIns(),open,)。 (true)。 String fname = () + () 。 ig = getToolkit().getImage(fname)。 ? 使用單一的 ; ? 使用 action(), handleEvent( )以及其他的一些事件處理方法(如鼠標(biāo)事件、鍵盤事件、焦點(diǎn)事件)來進(jìn)行相應(yīng)事件的事件處理。 ? 缺點(diǎn):造成長(zhǎng) if分支語句組,不利于面向?qū)ο蟮木幊? 對(duì)事件處理的改進(jìn) ? 引入 ? 更加面向?qū)ο?,易于理? ? 定義了事件的“發(fā)生者”和“監(jiān)聽者”對(duì)象 按鈕事件、文本事件、選擇事件、調(diào)整事件、 鼠標(biāo)事件、鍵盤事件等 ? 事件以類層次來表達(dá),取代了 類,并可以自定義事件類型 事件及處理機(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ì)象(即指定處理某種事件的事件處理程序)。 事件處理機(jī)制 ? 組件(事件發(fā)生者)觸發(fā)一個(gè)相應(yīng)類型的事 件 ? 此事件由相應(yīng)類型的 Listener( 事件監(jiān)聽者 ) 接收并處理 Button 1 事件發(fā)生者 接收事件 e,并做處理 ActionListener 事件監(jiān)聽者 觸發(fā) ActionEvent e 點(diǎn)擊, 事件及處理機(jī)制 調(diào)用按扭的 addActionListener ( ) 方法,為該按扭指定監(jiān)聽者。 鼠標(biāo)單擊按扭 ActionEvent事件 觸發(fā) public void actionPerformed(ActionEvent e) ActionListener接口 ActionEvent事件 監(jiān)聽者類 監(jiān)聽者對(duì)象 實(shí)現(xiàn) 接口 幾個(gè)有用的概念 ? 事件 - 在 的事件類 ? 監(jiān)聽者接口 - 特定類型的 Listener接口,用于 監(jiān)聽特定類型的事件 ? 監(jiān)聽者類 - 是實(shí)現(xiàn)了某種監(jiān)聽者接口的 類 ,由編程者定義 ? 事件監(jiān)聽者 - 是某個(gè)監(jiān)聽者類的 對(duì)象 ,由編 程者使用 new創(chuàng)建 實(shí)現(xiàn)步驟 ? 根據(jù)需要定義相應(yīng)類型的監(jiān)聽者類,在類的 定義中完成事件的處理(建議使用 inner class 定義); ? 創(chuàng)建事件監(jiān)聽者對(duì)象; ? 為將會(huì)觸發(fā)事件的組件 C注冊(cè)相應(yīng)的事件監(jiān)聽 者對(duì)象(使用 C的 addXXXListener()方法)。 ? 例: public class ButtonAct extends Frame { ... ... ... public ButtonAct() { ... ... ... //為 b1注冊(cè)事件監(jiān)聽者 B1 (new B1())。 add(b1)。 ... ... ... } //利用 inner class結(jié)構(gòu)定義監(jiān)聽者類 class B1 implements ActionListener { //利用 actionPerformed方法進(jìn)行事件處理 public void actionPerformed(ActionEvent e){ (Button 1)。 } } ... ... ... } ///:~ 事件與監(jiān)聽者類型 ? XXXListener接口與 XXXEvent ? XXX為特定類型 ? 常用類型: Action, Focus, Key, Window, MouseEvent vs. Mouse/MouseMotionListener ? 注冊(cè)與取消:組件包含的新方法 addXXXListener()與 removeXXXListener() ? 參考: 監(jiān)聽者接口中有什么? ? 每種 Listener接口均定義了一套 abstract方法, 編程者必須在監(jiān)聽者類中實(shí)現(xiàn)這些方法來做事 件處理; ? 例: ActionListener: actionPerformed() WindowListener: windowOpened/Closing/Closed/Activated/ Deactivated/Iconified/Deiconified() 使用 Listener Adapter ? 由于接口中的方法為 abstract方法,所以在監(jiān)聽者類中要實(shí)現(xiàn)所有的方法,較為煩瑣。 ? 為了簡(jiǎn)化編程,引入了 Adapter。具有兩個(gè)以上方法的監(jiān)聽者接口均對(duì)應(yīng)一個(gè) XXXAdapter類,提供了接口中每個(gè)方法的缺省實(shí)現(xiàn)。 使用 Listener Adapter( 續(xù) ) ? 例: class MyWindowListener extends WindowAdapter { public void windowClosing(WindowEvent e) { (0)。 } } ? 參考: ? 例: ( 相應(yīng)鼠標(biāo)事件 ) public class DoubleClick extends Frame { Vector m_vLocs。 //保存鼠標(biāo)單擊過的各點(diǎn) , 用以繪制各點(diǎn)連線 Point m_CursorLoc。 //跟蹤當(dāng)前鼠標(biāo)位置 , 用以繪制十字光標(biāo) public DoubleClick() { m_vLocs = new Vector()。 m_CursorLoc = new Point(100,100)。 setSize(400, 400)。 //為 Frame注冊(cè) 3個(gè)事件監(jiān)聽者 addMouseListener(new click())。 addMouseMotionListener(new move())。 addWindowListener(new wd())。 } public void paint(Graphics g) {… //繪制十字光標(biāo) , 連接各點(diǎn) } class click extends MouseAdapter { //鼠標(biāo)事件監(jiān)聽者類 public void mouseClicked(MouseEvent e) {//響應(yīng)點(diǎn)擊 if(()1) //雙擊時(shí)清除向量中各點(diǎn) ()。 else //單擊時(shí)在向量中增加一點(diǎn) (())。 repaint()。 //重新繪制一次 } } class move extends MouseMotionAdapter{//鼠標(biāo)移動(dòng)監(jiān)聽者類 public void mouseMoved(MouseEvent e) {//響應(yīng)移動(dòng) m_CursorLoc = new Point((),())。 repaint()。 //重新繪制一次 } } … … … … } 事件類 ? ActionEvent類:屬于動(dòng)作事件,包括:點(diǎn)擊按鈕;雙擊一個(gè)列表中的選項(xiàng) 。選擇菜單項(xiàng);在文本框中按回車。最典型的例子是:鼠標(biāo)點(diǎn)擊按鈕所產(chǎn)生的事件,經(jīng) ActionListener接口觸發(fā)一連串動(dòng)作,再由 actionPerformed()方法完成這些動(dòng)作。 ? () 返回事件發(fā)生的對(duì)象 (名 ) ? () 返回按扭名 (動(dòng)作事 件的命令字符串 )。 ? ActionListener 接口 ? public void actionPerformed(ActionEvent e) 圖形用戶界面例 import .*。 import .*。 public class a { public static void main(String args[]){ MyFrame form1 = new MyFrame()。 } } class MyFrame extends Frame { MyFrame() { super(窗口標(biāo)題 )。 setSize(200,100)。 setFont(new Font(TimesRoman,20))。 圖形用戶界面例 setLayout(new FlowLayout())。 Button b = new Button(close)。 add(b)。 (new Bprocess())。 setVisible(true)。 } } class Bprocess implements ActionListener { public void actionPerformed(ActionEvent e) { (0)。 } } 監(jiān)聽者類 ? 某個(gè)類可以兼
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1