JavaGUI菜单和工具栏

上传人:hao****021 文档编号:244662086 上传时间:2024-10-05 格式:PPT 页数:27 大小:319KB
返回 下载 相关 举报
JavaGUI菜单和工具栏_第1页
第1页 / 共27页
JavaGUI菜单和工具栏_第2页
第2页 / 共27页
JavaGUI菜单和工具栏_第3页
第3页 / 共27页
点击查看更多>>
资源描述
,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第十九,Java GUI,编程高级,本讲主要内容:,给GUI应用程序添加菜单,“Java Editor”项目的界面更新,为组件定制弹出式菜单,给GUI应用程序添加工具栏,一、,给GUI应用程序添加菜单,菜单概述,菜单的作用:给应用程序设置操作菜单。,菜单组成,JMenuItem-,菜单项,直接指向一个具体的操作,JMenu-,菜单,其中可加入菜单项(,JMenuItem,)和菜单,(Jmenu),JMenuBar-,菜单栏,在其中可以加入菜单(,JMenu,),菜单的创建和组织,菜单的创建,JMenu,、,JMenuBar,和,JMenuItem,类的构造方法见表:,如创建一个“,File”,菜单:,JMenu file = new JMenu(File);,菜单的创建和组织,(,续,),菜单的组织,菜单栏可象别的组件一样添加到应用程序窗口。,JFrame,窗口加入菜单栏的方法:,public void setJMenuBar(JMenuBar menubar),JMenuBar,加入,JMenu,的方法:,public JMenu add(JMenu c),JMenu,中加入,JMenu,、,JMenuItem,、分隔线的方法:,public JMenuItem add(JMenuItem menuItem),public void addSeparator(),说明:因,JMenu,是,JMenuItem,的子类,故,add(JMenuItem menuItem),也可加入,JMenu,菜单。,如:,file.add(new JMenuItem(New);,file.addSeparator();,菜单的创建和组织,(,续,),快捷键设置,JMenu,的快捷键通常是,Alt +,字符键的组合,可用,setMnemonic,方法设置:,JMenu,对象,.setMnemonic(int mnemonic);,JMenuItem,的快捷键可以是,Ctrl +,字符键或,Alt +,字符键的组合,可用,setAccelerator,方法设置:,JMenuItem,对象,.setAccelerator(KeyStroke.getKeyStroke(,参数,1,参数,2);,参数,1,指向快捷键字符。参数,2,指向控制字符,通常是,KeyEvent. CTRL_MASK,(,Ctrl,),,KeyEvent.ALT_MASK,(,Alt,)。,如:,open.setAccelerator(KeyStroke.getKeyStroke(O,KeyEvent.CTRL_MASK);,可给“,open”,菜单项设置快捷键“,Ctrl + O”,。,菜单项的事件处理,当用户选定一个菜单项时,该菜单项将发生,ActionEvent,事件。关于,ActionEvent,事件的处理,重申三要点:,(1),安装侦听器,(implements ActionListener),(2),通过,addActionListener,方法设置侦听,(3),重写方法,actionPerformed,实现事件处理,二、,“Java Editor”项目的界面更新,界面设计,新的界面将按钮的功能集合到菜单栏中。,界面元素,菜单,集合了所有的功能。,嵌入滚动面板的多行文本框,用于文本显示和编辑。,界面设计,(,续,),“,Edit”,对文本区域操作,可以实现:复制、剪切、粘贴以及全选。,“,Help”“About”,将弹出,About,窗口。参考界面如图所示。,程序实现:,import java.awt.*;,import java.awt.event.*;,import javax.swing.*;,class NewEditor extends JFrame ,JMenuBar mnb; /菜单栏,JMenu file,edit,config,help; /各菜单,JMenuItem New,open,save,exit; /File下的菜单项,JMenuItem copy,cut,paste,selectall; /Edit下的菜单项,JMenuItem fc,bc,dc; /Config下的菜单项,JMenuItem about; /Help下的菜单项,JTextArea t;,NewEditor() ,super(Java Editor);,setDefaultCloseOperation(3);,editInit();,this.add(new JScrollPane(t);,this.setJMenuBar(mnb);,this.setBounds(200,200,600,400);,this.setVisible(true);,private void editInit(),t = new JTextArea();,t.setLineWrap(true);,file = new JMenu(File);,file.setMnemonic(F);,New = new JMenuItem(New);,open = new JMenuItem(Open);,save = new JMenuItem(Save);,exit = new JMenuItem(Exit);,file.add(New); file.add(open);,file.addSeparator();,file.add(save);,file.addSeparator();,file.add(exit);,edit = new JMenu(Edit);,edit.setMnemonic(E);,copy = new JMenuItem(Copy);,paste = new JMenuItem(Paste);,cut = new JMenuItem(Cut);,edit.add(cut);edit.add(copy); edit.add(paste);,edit.addSeparator();,edit.add(selectall);,config = new JMenu(Config);,config.setMnemonic(C);,bc = new JMenuItem(Back Color);,fc = new JMenuItem(Fore Color);,dc = new JMenuItem(Default Color);,config.add(fc); config.add(bc);,config.addSeparator();,config.add(dc);,help = new JMenu(Help);,help.setMnemonic(H);,about = new JMenuItem(About);,help.add(about);,mnb = new JMenuBar();,mnb.add(file);mnb.add(edit);,mnb.add(config);mnb.add(help);,public static void main(String args),new NewEditor();,三、,为组件定制弹出式菜单,问题的提出,为“Java Editor”程序的文本编辑区域定制如图所示的的弹出式菜单。,菜单中有五个菜单项组成,分别指示了不同的字体风格,可通过菜单项的选择实现文本区域中文本字体和字号的改变。,用JPopupMenu类建立弹出式菜单,建立弹出式菜单,预先定义一个继承,JPopupMenu,类的子类,弹出式菜单施加给的对象应由构造方法中的参数接收。本例应是负责文本编辑的多行文本框。,JPopupMenu,类的,add,方法允许向菜单中加入菜单项。弹出式菜单项的激活事件是,ActionEvent,,可依照多按钮的事件处理方法进行事件处理。,字体风格弹出式菜单的实现:,import java.awt.*;,import java.awt.event.*;,import javax.swing.*;,import javax.swing.border.BevelBorder;,class FontPopup extends JPopupMenu implements ActionListener,String item;,Font font;,JMenuItem mt;,JTextArea t;,FontPopup(JTextArea t),this.t = t;,this.setBorder(new BevelBorder(BevelBorder.RAISED);,/,设置立体边框,item = new String标准仿宋,粗放行楷,规矩新魏,精致宋体,灵感隶书;,font = new Font new Font(仿宋,0,18), new Font(华文行楷,0,30),new Font(华文新魏,0,22), new Font(宋体,0,14),new Font(隶书,0,20) ;,for(int i=0; iitem.length; i+),mt = new JMenuItem(itemi);,mt.setFont(new Font(仿宋,0,14);,this.add(mt);,mt.addActionListener(this);,public void actionPerformed(ActionEvent e) ,String s = e.getActionCommand();,int i;,for( i = 0; iitem.length; i +),if(s.equals(itemi)break;,t.setFont(fonti);,用JPopupMenu类建立弹出式菜单,为多行文本框定制弹出式菜单,让以上的弹出式菜单对文本框真实可用,就需要对文本框设置事件侦听。可通过,MouseEvent,的,getButton(),方法判断用户按下了哪个鼠标键:,MouseEvent.BUTTON1,左键,MouseEvent.BUTTON2,中间键,MouseEvent.BUTTON3,右键,多行文本框带弹出式菜单的实现:,import java.awt.event.*; import javax.swing.*;,class JTextAreaWithMenu extends JTextArea implements MouseListener,FontPopup fp ;,JTextAreaWithMenu(int r,int c) ,super(r,c);,fp = new FontPopup(this);,this.addMouseListener(this);,this.add(fp);,public void mousePressed(MouseEvent e),if(e.getButton()=e.BUTTON3) fp.show(this,e.getX(),e.getY();,public void mouseClicked(MouseEvent e),public void mouseEntered(MouseEvent e),public void mouseExited(MouseEvent e),public void mouseReleased(MouseEvent e),四、,给GUI应用程序添加工具栏,问题,提出,继续对“Java Editor”项目进行更新,再为界面添加如图所示的工具栏。,工具栏上流式顺序排放了七个工具按钮,作用分别是:新建文件、打开文件、保存文件、复制、剪切、粘贴、帮助。,工具栏界面设计,步骤,创建工具栏对象,将组件加入到工具栏,将工具栏加入到应用程序窗口,工具栏界面设计(续),创建工具栏对象,工具栏用,JToolBar,类及其子类创建,它是一个容器组件,在工具栏组件中可以容放其他组件。,JToolBar的构造方法:,public JToolBar(),:,默认方向为水平( HORIZONTAL)。,public JToolBar(int orientation),:,指定方向,参数可选 HORIZONTAL 或 VERTICAL,后者为竖式工具栏。,public JToolBar(String name),:,指定标题,标题浮动时可见。默认的方向为 HORIZONTAL。,工具栏界面设计(续),将组件加入到工具栏,工具栏设置布局:,setLayout,方法,默认,FlowLayout,流式排放。,工具栏添加组件:,add,方法向。也可通过“,addSeparator()”,方法在工具栏中加入分隔,以对工具按钮按功能分组。,将工具栏加入到应用程序窗口,JFrame,类的,add,方法,可将工具栏加入进应用程序窗口,同时确定停放位置。,如:,this.add(toolBar,North); /,加入工具栏并停靠在上边,import java.awt.*; import java.awt.event.*;,import java.io.*; import javax.swing.*;,class EditorToolBar extends JToolBar,EditorToolBar(JTextArea t),super(Toolbar for Java Editor);,String imgFile = new.jpg, open.jpg,save.jpg,copy.jpg,cut.jpg,paste.jpg,help.jpg;,ImageIcon toolImage = new ImageIconimgFile.length;,JButton tb = new JButtonimgFile.length;,for(int i = 0; i imgFile.length; i+) ,toolImagei = new ImageIcon(graphics+imgFilei);,tbi = new JButton(toolImagei);,if(i=3 | i=6)this.addSeparator();,this.add(tbi);,练习,练习:对以上工具栏上的按钮进行事件处理,并将工具栏加入到“Java Editor”项目中。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!