資源描述:
《JavaGUI菜單和工具欄》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。
1、第十九JavaGUI編程高級本講主要內(nèi)容:給GUI應用程序添加菜單“JavaEditor”項目的界面更新為組件定制彈出式菜單給GUI應用程序添加工具欄一、給GUI應用程序添加菜單菜單概述菜單的作用:給應用程序設置操作菜單。菜單組成JMenuItem---菜單項,直接指向一個具體的操作JMenu---菜單,其中可加入菜單項(JMenuItem)和菜單(Jmenu)JMenuBar----菜單欄,在其中可以加入菜單(JMenu)菜單的創(chuàng)建和組織菜單的創(chuàng)建JMenu、JMenuBar和JMenuItem類的構造方法見表:如創(chuàng)建一個“File”菜單:JMenufile=newJMe
2、nu("File");菜單的創(chuàng)建和組織(續(xù))菜單的組織菜單欄可象別的組件一樣添加到應用程序窗口。JFrame窗口加入菜單欄的方法:publicvoidsetJMenuBar(JMenuBarmenubar)JMenuBar加入JMenu的方法:publicJMenuadd(JMenuc)JMenu中加入JMenu、JMenuItem、分隔線的方法:publicJMenuItemadd(JMenuItemmenuItem)publicvoidaddSeparator()說明:因JMenu是JMenuItem的子類,故add(JMenuItemmenuItem)也可加入JMen
3、u菜單。如:file.add(newJMenuItem("New"));file.addSeparator();菜單的創(chuàng)建和組織(續(xù))快捷鍵設置JMenu的快捷鍵通常是Alt+字符鍵的組合,可用setMnemonic方法設置:JMenu對象.setMnemonic(intmnemonic);JMenuItem的快捷鍵可以是Ctrl+字符鍵或Alt+字符鍵的組合,可用setAccelerator方法設置:JMenuItem對象.setAccelerator(KeyStroke.getKeyStroke(參數(shù)1,參數(shù)2));參數(shù)1指向快捷鍵字符。參數(shù)2指向控制字符,通常是Key
4、Event.CTRL_MASK(Ctrl),KeyEvent.ALT_MASK(Alt)。如:open.setAccelerator(KeyStroke.getKeyStroke('O',KeyEvent.CTRL_MASK));可給“open”菜單項設置快捷鍵“Ctrl+O”。菜單項的事件處理當用戶選定一個菜單項時,該菜單項將發(fā)生ActionEvent事件。關于ActionEvent事件的處理,重申三要點:(1)安裝偵聽器(implementsActionListener)(2)通過addActionListener方法設置偵聽(3)重寫方法actionPerformed
5、實現(xiàn)事件處理二、“JavaEditor”項目的界面更新界面設計新的界面將按鈕的功能集合到菜單欄中。界面元素菜單,集合了所有的功能。嵌入滾動面板的多行文本框,用于文本顯示和編輯。界面設計(續(xù))“Edit”對文本區(qū)域操作,可以實現(xiàn):復制、剪切、粘貼以及全選?!癏elp”?“About”將彈出About窗口。參考界面如圖所示。程序實現(xiàn):importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;classNewEditorextendsJFrame{JMenuBarmnb;//菜單欄JMenufile,edit,conf
6、ig,help;//各菜單JMenuItemNew,open,save,exit;//File下的菜單項JMenuItemcopy,cut,paste,selectall;//Edit下的菜單項JMenuItemfc,bc,dc;//Config下的菜單項JMenuItemabout;//Help下的菜單項JTextAreat;NewEditor(){super("JavaEditor");setDefaultCloseOperation(3);editInit();this.add(newJScrollPane(t));this.setJMenuBar(mnb);this
7、.setBounds(200,200,600,400);this.setVisible(true);}privatevoideditInit(){t=newJTextArea();t.setLineWrap(true);file=newJMenu("File");file.setMnemonic('F');New=newJMenuItem("New");open=newJMenuItem("Open");save=newJMenuItem("Save");exit=newJMenuItem("Exit");file