第07讲-Java图形界面_第1页
第07讲-Java图形界面_第2页
第07讲-Java图形界面_第3页
第07讲-Java图形界面_第4页
第07讲-Java图形界面_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七讲,Java图形界面,2,前讲回顾,在程序运行时发生的错误称为异常必须捕获被触发的每一个异常,否则程序不会正常终止Java使用trycatchfinally块来处理异常。finally块不是必须的,但不管是否发生了异常,都将执行finally块中的语句,return语句也无法阻止finally块中语句的执行catch块必须始终与try块在一起,不能单独存在程序可以使用throw语句来抛出明确的异常(异常对象)关键字throws用于列出一个方法可能引发的多个异常类型,强制调用者在调用此方法时,必须对这些异常进行捕捉自定义异常类应该是Exception类(或其子类)的子类Java中的垃圾回收就是将分配给对象但已再不使用的内存回收或释放的过程。String是最终类,不可改变大小;StringBuffer是字符串缓冲类,可改变大小。,3,本讲内容摘要,Java图形界面编程简介Swing组件概述及其继承体系Swing中的容器概念(JFrame和JPanel)Swing中常用组件(手写、拖拽方式编程)Swing中的布局管理Swing中的事件处理机制目标:完成一个登录界面并响应输入,4,Java图形界面编程简介,GUI概念:GraphicUserInterface,即图形用户接口。在Java1.0中,使用AWT(AbstractWindowToolkit,即抽象窗口工具箱)进行图形编程。缺点:可移植性差,难以提供给用户一致的行为;效率不高;存在诸多BUG在Java1.1之后,使用Swing组件进行图形编程。相对于AWT而言,提高了可移植性和运行效率,并且提供了内容更多、使用更为方便的组件,使用了新的AWT事件处理模型Swing并未完全取代AWT,只是使用了更好的GUI组件,并扩展了AWT中的组件。Java并不擅长于图形界面编程,Swing图形编程效率仍然偏低,且图形效果并不为大多数人接受,5,Swing组件概述,Swing中的类基本上都以J开头Swing中的各种控件类均继承自JCompenent类,而JCompnent类继承自awt包的Container类在使用Swing进行图形编程时,仍然会用到awt包中的类,二者需结合使用Swing中的各控件类基本上都是JavaBean,JavaBean是一种符合某种特殊规则的类。JavaBean都有一个无参的构造函数,其属性都有相对应的getter和setter方法。,6,Swing组件继承体系2-1,awt包中的类,Swing包中的类,7,Swing组件继承体系2-2,awt包中的类,Swing包中的类,8,Swing中容器的概念,Swing中的容器指的是可包含或容纳其它组件的组件Swing中所有的组件都直接或间接继承自awt包中的Container类,Container类就是一个容器类Container及其子类通过add方法向其上添加组件JFrame是最常见的容器类,为顶级容器。在Swing界面编程中,一般都是在这个容器上添加其它组件,9,JFrame的用法示例,/构造一个窗体对象,其标题为“我的第一个窗口程序”JFrameframe=newJFrame(“我的第一个窗口程序”);/设置窗体的大小(宽和高)frame.setSize(200,100);/设置窗体在屏幕中位置(x坐标和y坐标)frame.setLocation(100,100);/上两句合起来等同于frame.setBounds(100,100,200,100);/设置窗体可见frame.setVisiable(true);/关闭窗体时关闭程序frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);,10,JPanel的用法示例,JFrameframe=newJFrame(“添加了JPanel的窗口”);/构造一个面板(JPanel)对象,在面板上添加组件JPanlepanel=newJPanel();/将面板添加到顶级容器frame中frame.add(panel);frame.setSize(200,100);frame.setLocation(100,100);frame.setVisiable(true);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);,11,Swing组件之标签(JLabel),JLabel类:javax.swing.JLabel此组件主要用来放置提示文本或图形,或者二者的组合。SwingConstants是一个类,存放了Swing中的常用常量。如位置等。可通过容器类的add方法添加JLabel组件。,JFrameframe=newJFrame(“JLabel的用法”);JLabellbl1=newJLabel(“用户名”);JLabellbl2=newJLabel(“密码”);JLabellbl3=newJLabel(newImageIcon(“image/flower.jpg”);frame.add(lbl1);frame.add(lbl2);frame.add(lbl3,SwingConstants.Left);,12,JLabel的构造函数,JLabel():建立一个空白标签JLabel(Iconimage):建立一个带有图标的标签,默认排列方式为centerJLabel(Iconimage,inthorizontalAlignment):建立一个带有图标的标签,并指定其排列方式JLabel(Stringtext):建立一个含有文字的标签,默认排列方式为leftJLabel(Stringtext,inthorizontalAlignment):建立一个含有文字的标签,并指定其排列方式JLabel(Stringtext,Iconicon,inthorzontalAlignment):建立一个带文字和图标的标签,并指定其排列方式,13,JLabel的常用方法,setHorizontalAlignment(intalignment):设置标签文字或图像的水平位置setHorizontalTextPosition(inttextPosition):设置标签文字相对于图像的水平位置setIcon(Iconicon):设置标签内的图像setIconTextGap(inticonTextGap):设置标签内文字或图像的垂直位置setText(Stringtext):设置标签文字setVerticalAlignment(intalignment):设置标签内文字或图像的垂直位置setVerticalPosition(inttextPosition):设置标签内文字相对于图像的垂直位置,14,Swing组件之面板(JPanel),JPanel本身是一个容器,可以向其中添加其它组件。JPanel不是顶级容器,需要添加到顶级容器中,才能显示。JPanel具备自身表面绘制图形功能。,JFrameframe=newJFrame(“JPanel的用法”);JPanelpanel=newJPanel();JLabellbl1=newJLabel(“用户名”);JLabellbl2=newJLabel(“密码”);JLabellbl3=newJLabel(newImageIcon(“image/flower.jpg”);panel.add(lbl1);panel.add(lbl2);panel.add(lbl3,SwingConstants.Left);frame.add(panel);,15,Swing组件之按钮(JButton),继承自AbstractButton类通过添加事件监听器可以对用户的操作产生响应,JFrameframe=newJFrame(“JButton的用法”);JPanelpanel=newJPanel();JLabellbl1=newJLabel(“用户名”);JLabellbl2=newJLabel(“密码”);JButtonbtn=newJButton(“确定”);JLabellbl3=newJLabel(newImageIcon(“image/flower.jpg”);panel.add(lbl1);panel.add(lbl2);panel.add(lbl3,SwingConstants.Left);panel.add(btn);frame.add(panel);,16,JButton的构造函数及常用方法,JButton():创建不带有设置文本或图标的按钮JButton(Actiona):创建一个按钮,其属性从所提供的Action中获取JButton(Iconicon):创建一个带图标的按钮JButton(Stringtext):创建一个带文本的按钮JButton(Stringtext,Iconicon):创建一个带初始文本和图标的按钮。voidsetText(Stringvalue):设置按钮上的文本voidsetIcon(Iconicon):设置按钮图片,17,Swing组件之文本框(JTextField),JTextField用于文字输入或输出,且可对其中文字进行编辑JTextField只能输入单行文本,当输入较少时,可选此组件JTextField类:javax.swing.JTextField,JFrameframe=newJFrame(“JTextField的用法”);JPanelpanel=newJPanel();JLabellbl1=newJLabel(“用户名”);JTextFieldjtf=newJTextField(“panhou”);panel.add(lbl1);panel.add(jtf);jtf.setColumns(20);jtf.setEditable(false);frame.add(panel);,18,JTextField的构造函数,JTextField():建立一个空白文本框JTextField(Documentdoc,Stringtext,intcolumns):使用指定的文件模式建立一个文本框,并且设置其初始字符串和字段长度JTextField(intcolumns):建立一个文本框,并设置其初始字段长度JTextField(Stringtext):建立一个文本框,并设置其初始字符串JTextField(Stringtext,intcolumns):建立一个文本框,并设置其初始字符串和字段长度,19,JTextField的常用方法,setColumns(intcolumns):设置文本框的字段长度setEditable(booleanb):设置文本框是否可被编辑setFont(Fontfont):设置文本框内文字的字体setText(Stringtext):设置文本框的字符串setHorizontalAlignment(intalignment):设置文本对齐方式,如JTextField.RightgetText():取得文本框的文本select():动态的选中文本框中的文本copy():复制文本框中的文本到系统剪贴板cut():剪切文本框上的文本到系统剪贴板paste():将系统剪贴板中的内容粘贴到文本框中,20,Swing组件之文本域(JTextArea),JTextArea可输入多行文本并进行编辑当输入较大量的文本时,可选择使用JTextArea创建JTextArea时,可指定文本域的行数和列数,JFrameframe=newJFrame(“JTextArea的用法”);JPanelpanel=newJPanel();JLabellbl1=newJLabel(“个人介绍”);JTextAreajta=newJTextArea(10,30);panel.add(lbl1);panel.add(jta);jtf.setColumns(20);jtf.setEditable(false);frame.add(JPanel);,21,JTextArea的构造函数,JTextArea():建立一个空白文本域JTextArea(Documentdoc):使用指定的文件存储模式建立一个文本域。JTextArea(Documentdoc,Stringtext,introws,intcolumns):使用指定的文件存储模式建立一个文本域,并且设置其初始字符串、列数和字段长度(行数)JTextArea(introws,intcolumns):建立一个文本域,并且设置其初始列数和字段长度(行数)JTextArea(Stringtext):建立一个文本域,并且设置其初始字符串JTextArea(Stringtext,introws,intcolumns):建立一个文本域,并且设置其初始字符串,列数和字段长度,22,JTextArea的常用方法,setColumns(intcolumns):设置文本域的列数setEditable(booleanb):设置文本域是否可编辑setFont(Fontfont):设置文本域内的文字字体setLineWrap(booleanb):设置是否自动换行,默认值为false,即到了指定的边界后,并不换行,只是将超出显示范围setRows(introws):设置文本域的行数setTabSize(intsize):设置按下Tab键后,跳离的距离setText(Stringtext):设置文本域的内容getText():取得文本域的内容copy():将选中的字符串复制到系统剪贴板上paste():将剪贴板上的内容复制到当前位置append(Stringtext):在原来的字符串结尾处添加字符串,23,Swing组件之组合框(JComboBox),JComboBox可提供备选选项,用户可选择一项作为输入JComboBox可以减少用户工作量,提高效率,还可以减少用户输入出错的机会JComboBox组件一般称为下拉式列表框,可以让用户浏览一系列的选项并选出或自己输入想要的值JComboBox可以以两种模式工作,可编辑模式与不可编辑模式,默认情况下,JComboBox处于不可编辑的模式在不可编辑模式下,JComboBox可提供选项列表供用户选择,且只能选择一项作为输入在可编辑模式下,用户既可以从选项列表中选择,也可以直接在组合框中输入并编辑,JFrameframe=newJFrame(“JComboBox的用法”);JPanelpanel=newJPanel();JLabellbl1=newJLabel(“性别”);Stringsex=“男”,”女”;JComboBoxjcb=newJComboBox(sex);panel.add(lbl1);panel.add(jcb);frame.add(panel);,24,JComboBox的构造函数,JComboBox():建立一个新的组合框JComboBox(ComboBoxModelaModel):利用ComboBoxModel建立一个新的组合框JComboBox(Objectitems):利用Array数组对象建立一个新的组合枉JComboBox(Vectoritems):利用Vector矢量集对象建立一个新的组合框,25,JComboBox的常用方法,voidaddItem(Objectobj):将对象添加到下拉列表框显示的项目中intgetItemCount():返回下拉列表框的项目总数ObjectgetSelectedItem():返回当前选中的项目voidremoveAllItems():移除下拉列表框中所有的项目voidremoveItemAt(intindex):移除项目索引值为index的项目voidsetEditable(booleanb):设置下拉列表框是否可编辑voidsetSelectedIndex(intindex):设置索引值为index的项目的状态为已选中,26,Swing组件之单选框(JRadioButton),JRadioButton类:javax.swing.JRadioButtonJRadioButton通常成组使用,一组中一次只能有一个按钮被第选中JRadioButton适用于多个备选选项中选择一项的场合使用时,需将所有的单选按钮加入到ButtonGroup中,以实现单选效果,JFrameframe=newJFrame(“JRadioButton的用法”);JPanelpanel=newJPanel();JLabellbl1=newJLabel(“性别”);JRadioButtonjrb1=newJRadioButton(“男”);JRadioButtonjrb2=newJRadioButton(“女”);ButtonGroupbg=newButtonGroup();bg.add(jrb1);bf.add(jrb2);panel.add(lbl1);panel.add(jrb1);panel.add(jrb2);frame.add(panel);,27,JRadioButton的构造函数,JRadioButton():建立一个新的单选按框JRadioButton(Iconicon):建立一个有图像但没文字的单选框JRadioButton(Iconicon,booleanselected):建立一个有图像但没文字的单选框,并且设置其初始状态JRadioButton(Stringtext):建立一个有文字的单选框JRadioButton(Stringtext,booleanselected):建立一个有文字的单选框,并且设置其初始状态JRadioButton(Stringtext,Iconicon):建立一个有文字且有图像的单选框JRadioButton(Stringtext,Iconicon,booleanselected):建立一个有文字且有图像的单选框,并且设置其初始状态,28,JRadioButton的常用方法,voidsetText(Stringtext);设置单选按钮的文字StringgetText();取得单选按钮的文字voidsetSelected(booleanb);设置单选按钮的选中状态booleanisSelected();返回单选按钮的选中状态,29,Swing组件之复选框(JCheckBox),组合框和单选按钮均只能在备选选项中选择一项,各个选项之间是互斥的复选框可从备选选项中选择不止一项复选框是一种多状态GUI组件,重复单击,可在选中和未选中状态之间进行切换一组复选框中可以同时有多个复选框被选中,JFrameframe=newJFrame(“JCheckBox的用法”);JPanelpanel=newJPanel();JLabellbl1=newJLabel(“爱好”);JCheckBoxjcb1=newJCheckBox(“足球”);JCheckBoxjcb2=newJCheckBox(“篮球”);JCheckBoxjcb3=newJCheckBox(“排球”);panel.add(lbl1);panel.add(jcb1);panel.add(jcb2);panel.add(jcb3);frame.add(panel);,30,JCheckBox的构造函数,JCheckBox();建立一个新的构造函数JCheckBox(Iconicon);建立一个有图像但没文字的复选框JCheckBox(Iconicon,booleanselected);建立一个有图像但没文字的复选框,并且设置其初始状态JCheckBox(Stringtext);建立一个有文字的复选框JCheckBox(Stringtext,booleanselected);建立一个有文字的复选框,并且设置其初始状态JCheckBox(Stringtext,Iconicon);建立一个有文字且有图像的复选框JCheckBox(Stringtext,Iconicon,booleanselected);建立一个有文字且有图像的复选框,并且设置其初始状态,31,JCheckBox的常用方法,setText(Stringtext);设置复选框的文字getText();取得复选框的文字setSelected(booleanb);设置复选框的选中状态isSelected();返回复选框的选中状态,32,Swing组件之列表框(JList),JList与JCheckBox有点类似,均可选择一项到多个选项。JList的选取方式是整列选取,JFrameframe=newJFrame(“JList的用法”);JPanelpanel=newJPanel();Stringcountry=“美国”,”法国”,”日本”,”英国”;JListlist1=newJList(country);Vectorv=newVector();v.add(“1月”);v.add(“2月”);v.add(“3月”);v.add(“4月”);JListlist2=newJList(v);panel.add(list1);panel.add(list2);frame.add(panel);,33,JList的构造函数,JList();建立一个新的列表框JList(ListModeldataModel);利用ListModel建立一个新的列表框JList(ObjectlistData);利用Array(数组)对象建立一个新的列表框JList(VectorlistData);利用Vector(矢量集)对象建立一个新的列表框,34,JList的常用方法,voidcleanSelection();清除已选择项intgetSelectedIndices();获得已选择项的索引值ObjectgetSelectedValues();获得已选择项的内容booleanisSelectedIndex(intindex);判断index位置上的项目是否被选中,并返回值。voidsetListData(ObjectlistData);设置创建列表框的数组对象voidsetListData(VectorlistData);设置创建列表框的矢量集对象setModel(ListModeldataModel);设置创建框的列表框模板voidsetSelectionMode(intselectionMode);设置列表框的选择方式,由ListSelectionModel提供3个静态参数,允许连续多选,隔项多选,只单选,35,Swing组件之密码框JPasswordField,JPasswordField是JTextField的一个子类,有一点细微变化,即隐藏了文本字段显示的字符JPasswordField上额外的“安全性”方法对JTextField的行为做了细微改变,所以不能读取文本,JFrameframe=newJFrame(“JPasswordField的用法”);JPanelpanel=newJPanel();JPasswordFieldjpf=newJPasswordField();panel.add(jpf);frame.add(panel);,36,JPasswordField的构造函数,JPasswordField();构造一个新JPasswordField,使其具有默认文档、为null的开始文本字符串和为0的列宽度JPasswordField(Documentdoc,Stringtxt,intcolumns);构造一个使用给定文本存储模型和给定列数的新JPasswordFieldJPasswordField(intcolumns);构造一个具有指定列数的新的空JPasswordFieldJPassword(Stringtext);构造一个利用指定文本初始化的新JPasswordField。JPasswordField(Stringtext,intcolumns)构造一个利用指定文本和列初始化的新JPasswordField,37,JPasswordField的常用方法,voidsetEchoChar(charc);设置回显的字符chargetEchoChar();获得回显的字符chargetPassword();返回此密码框中的文本,返回数组类型为字符数组,38,Swing组件之JScrollPane,JScrollPane为Swing组件提供了处理所有与滚动相关的动作主要用在JTextArea,JFrameframe=newJFrame(“JScrollPane的用法”);JPanelpanel=newJPanel();JTextAreajta=newJTextArea(10,20);jta.setLineWrap(true);JScrollPanejsp=newJScrollPane(jta);panel.add(jsp);frame.add(panel);,39,Swing组件之滑块(JSlider),JSlider支持数值变化。它是一种迅速而简单的获取输入方式用户可以获得当前选择的反馈,还可以看到可接受值的范围,JFrameframe=newJFrame(“JSlider的用法”);JPanelpanel=newJPanel();JSliderjs=newJSlider(10,100,50);js.setMajorTickSpacing(10);js.setPaintLabels(true);js.setPaintTicks(true);panel.add(jsp);frame.add(panel);,40,JSlider的构造函数,JSlider();创建一个范围在0到100之间并且初始值为50的水平滑块。JSlider(BoundedRangeModelbrm);使用指定的BoundedRangeModel创建一个水平滑块。JSlider(intorientation)使用指定的方向创建一个滑块,范围在0到100之间并且初始值为50。JSlider(intmin,intmax);使用指定的最小值和最大值创建一个水平滑块,初始值等于最小值加上最大值的平均值。JSlider(intmin,intmax,intvalue);用指定的最小值、最大值和初始值创建一个水平滑块。JSlider(intorientation,intmin,intmax,intvalue);用指定的方向和指定的最小值、最大值以及初始值创建一个滑块。,41,JSlider的常用方法,voidsetMinimum(intminimum):设置可以选择的最小值voidsetMaximum(intmaximum):设置可以选择的最大值voidsetOrientation(intorientation):设置JSlider是水平方向还是垂直方向intgetOrientation():获得JSlider的方向voidsetValue(intn):设置JSlider的当前值为nintgetValue();获得JSlider的当前值voidsetMajorTickSpacing(intn):此方法设置主刻度标记的间隔voidsetPaintLabels(booleanb):确定是否在滑块上绘制标签voidsetPaintTicks(booleanb):确定是否在滑块上绘制刻度标记,42,Swing组件之JSpinner,JSpinner和JSlider很相似,可以用其允许用户选择一个整数值JSpinner的主要优势就是比JSlider的空间紧凑JSpinner的主要不足就是无法方便的设置其边界JSinner除了在数字之间选择,还可以用来在日期、名称、颜色和任何事之间进行选择最适合数字和日期,JFrameframe=newJFrame(“JSpinner的用法”);JPanelpanel=newJPanel();Stringmonths=newDateFormatSymbols.getMonths();SpinnerModelsm=newSpinnerListModel(months);JSpinnersp1=newJSpinner(sm);SpinnerNumberModelsnm=newSpinnerNumberModel(50,0,100,10);JSpinnersp2=newJSPinner(snm);frame.add(panel);,43,JSpinner的构造函数,JSpinner();构造一个spinner,使其具有初始值为0并且无任何最小值或者最大值限制的IntegerSpinnerNumberModel。JSpinner(SpinnerModelmodel);构造具有一对next/previous按钮和SpinnerModel编辑器的完整spinner。,44,JSpinner的常用方法,voidsetValue(Objectvalue);设置JSpinner的当前值ObjectgetValue();获得JSpinner的当前值getNextValue();获得由getValue所返回对象之后的对象getPriviousValue();获得由getValue所返回对象之前的对象,45,Swing组件之菜单(JMenu),菜单是软件必备组件之一,它可以简单明了的指示说明,让用户顺利的完成软件的操作JMenuBar,JMenu,JMenuItem组件是在JFrame中开发菜单系统的主要构造块JMenu是JMenuItem的子类,但在表面上,JMenu可以包含其它JMenu和JMenuItemJMenu是用来存放和整合JMenuItem组件的JMenu可以是单一结构,也可以是层次结构,JFrameframe=newJFrame(“JMenu的用法”);JPanelpanel=newJPanel();JMenuBarmbr=newJMenuBar();JMenumenu=newJMenu(“文件”);JMenuItemmi=newJMenuItem(“新建”);menu.add(mi);mbr.add(menu);frame.setJMenuBar(mbr);frame.add(panel);,46,JMenu的构造函数,JMenu():建立一个新的JMenuJMenu(Actiona):建立一个支持Action的JMenuJMenu(Strings):以指定的字符串名称建立一个新的JMenuJMenu(Strings,booleanb):以指定的字符串名称建立一个新的JMenu,并设置该JMenu是否具有下拉属性,47,JMenu的常用方法,voidadd(JMenuItemitem);在JMenu上加载菜单项vdoiaddSeparator();在JMenu上加载分隔符voidremove(JMenuItemitem);在JMenu上移除菜单项voidsetAccelerator(KeyStrokestroke);在JMenu上设置快捷键,48,Swing组件之JMenuItem,JMenuItem继承自AbstractButton类JMenuItem具有许多Button特性,49,JMenuItem的构造函数,JMenuItem():建立一个新的菜单项JMenuItem(Actiona):建立一个支持Action的新的菜单项JMenuItem(Iconicon):建立一个有图标的菜单项JMenuItem(Stringtext):建立一个有文字的菜单项JMenuItem(Stringtext,Iconicon):建立一个有图标和文字的菜单项JMenuItem(Stringtext,intmnemonic):建立一个有文字的菜单项,并设置其快捷键,50,JMenuItem的常用方法,setEnabled(boolean):启用或停用此菜单项setText(Stringtext):设置菜单的显示文本add(Componentc):在菜单上添加其它组件voidsetMnemonic(intmnemonic):设置当前模型上的键盘助记符。其参数为KeyEvent类的一些常量,如KeyEvent.VK_FvoidsetAccelerator(KeyStrokekeystroke):设置快捷键,它能直接调用菜单项的操作监听器而不必显示菜单的层次结构。,51,复选菜单项(JCheckBoxMenuItem),JCheckBoxMenuItem():建立一个新的复选菜单项JCheckBoxMenuItem(Actiona):建立一个新的支持Action的复选菜单项JCheckBoxMenuItem(Iconicon):建立一个新的有图标的复选菜单项JCheckBoxMenuItem(Stringtext):建立一个有文字的复选菜单项JCheckBoxMenuItem(Stringtext,boolean):建立一个有文字的复选菜单项并设置其初始状态JCheckBoxMenuItem(Stringtext,Iconicon):建立一个有文字并且有图标的复选菜单项JCheckBoxMenuItem(Stringtext,Iconicon,booleanb):建立一个有文字和图标的复选菜单项,并且设置其初始状态,52,单选菜单项(JRadioButtonMenuItem),JRadioButtonMenuItem():建立一个新的单选菜单项JRadioButtonMenuItem(Actiona):建立一个运行Action的单选菜单项JRadioButtonMenuItem(Iconicon):建立一个有图标的单选菜单项JRadioButtonMenuItem(Stringtext):建立一个有文字的单选菜单项JRadioButtonMenuItem(Stringtext,booleanb):建立一个有文字的单选菜单项,并且可以其初始状态JRadioButtonMenuItem(Stringtext,Iconicon):建立一个有图标有文字的单选菜单项JRadioButtonMenuItem(Stringtext,Iconicon,booleanb):建立一个有文字有图标的单选菜单项,并设置其初始状态,53,Swing组件之弹出式菜单(JPopupMenu),弹出式菜单不依附在一个菜单栏上,而是在某个位置自由弹出的一种菜单JPopupMenu也可以用作快捷菜单,即在右击鼠标时激活它是一种特别形式的JMenu,其形式与JMenu几乎完全相同,只是JPopupMenu并不固定在窗口的任何一个位置,而是由鼠标指针和系统判断决定其出现的位置。,JFrameframe=newJFrame(“JPopupMenu的用法”);JPopupMenujpm=newJPopupMenu();JMenuItemmi=newJMenuItem(“新建”);JMenuItemmi1=newJMenuItem(“编辑”);jpm.add(mi);jpm.add(mi1);frame.addMouseListener(newMouseAdapter()publicvoidmouseReleased(MouseEvente)if(e.isPopupTrigger()jpm.show(e.getComponent,e.getX(),e.getY(););,54,JPopupMenu的构造函数,JPopupMenu():建立一个新的JPopupMenuJPopupMenu(Stringlabel):建立一个指定标题的JPopupMenu,55,Swing组件之工具栏(JToolBar),JToolBar是包含多个组件的容器,通常所包含的组件是包含图标的按钮工具栏允许程序把常用的命令放到可以迅速发现的位置,并把它们以常用命令组的形式组合到一起一般情况下,工具栏中命令在菜单中都有对应的命令,JFrameframe=newJFrame(“JToolBar的用法”);JToolBarjtb=newJToolBar();JButtonbtn1=newJButton(“新建”);btn1.setToolTipText(“新建一个文本文档”);JButtonbtn2=newJButton(“打开”);btn2.setToolTipText(“打开一个文本文档”);JButtonbtn3=newJButton(“保存”);jtb.add(btn1);jtb.a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论