![Java程序设计教程课件 第7章 图形用户界面程序设计_第1页](http://file4.renrendoc.com/view10/M00/27/19/wKhkGWelhUmAdf0PAAGwvjVgfSQ546.jpg)
![Java程序设计教程课件 第7章 图形用户界面程序设计_第2页](http://file4.renrendoc.com/view10/M00/27/19/wKhkGWelhUmAdf0PAAGwvjVgfSQ5462.jpg)
![Java程序设计教程课件 第7章 图形用户界面程序设计_第3页](http://file4.renrendoc.com/view10/M00/27/19/wKhkGWelhUmAdf0PAAGwvjVgfSQ5463.jpg)
![Java程序设计教程课件 第7章 图形用户界面程序设计_第4页](http://file4.renrendoc.com/view10/M00/27/19/wKhkGWelhUmAdf0PAAGwvjVgfSQ5464.jpg)
![Java程序设计教程课件 第7章 图形用户界面程序设计_第5页](http://file4.renrendoc.com/view10/M00/27/19/wKhkGWelhUmAdf0PAAGwvjVgfSQ5465.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章
图形用户界面程序设计
教学导航教学目标了解Swing实现多文档界面应用程序的组件熟悉Swing的常用容器类组件、基本组件、对话框及相关方法熟悉容器中组件的合理布局方法熟练掌握在ApacheNetBeansIDE的可视化环境中设计窗口与添加组件的方法掌握事件监听的实现方法学会创建JFrame窗口、在JFrame窗口中添加组件学会在JFrame窗体中创建并使用菜单、快捷菜单学会在JFrame窗体中创建并使用工具栏学会应用JTable组件设计JavaGUI应用程序
教学导航教学重点Swing的常用组件及其相关方法创建JFrame窗口、在JFrame窗口中添加组件容器中组件的合理布局方法事件监听的实现方法在JFrame窗体中创建并使用菜单、快捷菜单在JFrame窗体中创建并使用工具栏在ApacheNetBeansIDE的可视化环境中设计窗口与添加组件
身临其境Windows10自带的计算器界面如图7-1所示,该界面包含多个按钮、1个标签等组件。QQ登录界面如图7-2所示,该界面包含图片、标签、下拉列表框、密码输入框、复选框、登录按钮等组件。Windows照片查看器界面如图7-3所示,该界面包括多个菜单、多个工具按钮。图7-1
Windows10自带的计算器界面
图7-2
QQ登录界面图7-3
Windows照片查看器界面
前导知识【知识7-1】比较Swing和AWT
抽象窗口工具箱(AbstractWindowToolkjt,AWT)和Swing分别是Java为开发GUI提供的第一代和第二代技术。Swing不但用轻量级组件代替了AWT中的重量级组件,而且提供了比AWT更加丰富的组件,还增加了很多新的特性与功能。Swing是Java基础类库(JavaFoundationClasses,JFC)的一个重要组成部分,它不仅提供了丰富的组件,还提供了独立于运行平台的GUI架构,并且在不同的平台上都能够具有一致的显示风格。Swing组件是在AWT组件基础上发展起来的新型GUI组件。Swing组件的名称都以字母“J”开头,很多组件的名称是在同类AWT组件的名称前增加了一个字母“J”,如JButton和JPanel等。Swing组件位于javax.swing包中,AWT组件位于java.awt包中。Swing组件是AWT组件的Container类的直接子类或间接子类,Container类是用来管理相关组件的类,所有Swing组件都是JComponent类的子类。Swing组件必须添加到容器组件中才可以在用户界面中显示。Swing组件都具有setEnable(booleanb)方法,当组件对象调用该方法且参数值为true时组件被启用,否则组件被禁用。
前导知识【知识7-2】认知Swing组件的分类
Swing组件从功能上可分为如下几类。(1)顶层容器包括JFrame、JWindow、JDialog和JApplet。顶层容器为其他组件的显示与事件处理提供支持。(2)中间容器包括JPanel、JScrollPane、JSplitPane、JMenuBar、JToolBar。JPanel较常用,能够通过布局来排列其内部组件。JScrollPane与JPanel类似,可以提供滚动条。JSplitPane是一种分割面板,可以将组件分成上下或左右两个部分。JMenuBar是一个菜单容器,用于建立菜单栏。JToolBar为按行或列排列的一组组件。(3)基本组件是实现人机交互的主要组件,如JButton、JTextField、JComboBox、JList、JMenu、JSlider等。(4)可编辑组件是给用户显示能被编辑格式化信息的组件,如JTextArea、JTable、JFileChooser、JColorChooser等。(5)不可编辑组件是给用户显示不可编辑信息的组件,如JLable、JProgressBar等。除了JPanel外,其他的Swing容器不允许把组件直接加入容器,JPanel及其子类可以直接添加组件。其他容器添加组件的方式有如下两种。(1)使用getContentPane()方法获得内容面板,并将组件加入内容面板,示例代码如下。jframe.getContentPane().add(jlabel);也可以将内容面板添加到窗口容器中,示例代码如下。jframe.add(chileComponent);(2)建立一个JPanel或JDesktopPane之类的中间容器,把组件添加到中间容器中,并使用setContentPane()方法把中间容器设置为内容面板,示例代码如下。JPanelcontentPane=newJPanel();
jframe.setContentPane(contentPane);
前导知识【知识7-3】认知Swing的常用容器类组件及其相关方法Swing的常用容器类组件包括JFrame、JWindow、JPanel、JScrollPane、JSplitPane和JToolBar这6种。(1)JFrame组件(Component)是JavaGUI最基本的组成部分,是一个可以用图形化方式显示在屏幕上并且能够与用户进行交互的对象,如JButton、JLable等。但是组件不能独立显示,必须将组件放在一个容器中才能显示出来。容器是用来组织其他图形界面元素的基础组件。容器内部可以包含许多其他组件,也可以包含另一个容器。所有的容器类都是Container类的子类。Java应用程序一般以一个JFrame对象作为主窗口,JFrame属于顶层容器组件,JFrame类包含通用窗口的基本功能,如最小化窗口、移动窗口、重新设定窗口大小等。JFrame作为顶层容器,不能被其他容器包含,但可以被其他容器创建并弹出成为独立的容器。(2)JWindowJWindow可以构造无边框的窗口(3)JPanelJPanel组件属于中间容器,用于将小型的轻量级组件组合在一起。(4)JScrollPaneJScrollPane组件是带滚动条的面板,除了具有滚动条以外,该组件还可以设置表头名称、边角图案与ScrollPane外框,相比于JPanel,JScrollPane具有更强的灵活性。(5)JSplitPaneJSplitPane组件一次可将两个组件同时显示在两个显示区中。如果想要同时在多个显示区显示组件,则必须同时使用多个JSplitPane组件。JSplitPane组件提供了两个参数来设置水平分割(HORIZONTAL_SPLIT)和垂直分割(VERTICAL_SPLIT)。(6)JToolBarJToolBar是一个显示一组动作、命令或功能的组件,一般工具栏中的组件都是带图标的按钮,可以使用户更加方便地选择所需的功能。
前导知识【知识7-4】认知Swing的基本组件及其相关方法Swing的基本组件包括标签(JLabel)、文本域(JTextField)、密码文本框(JPasswordField)、文本域(JTextArea)、按钮(JButton)、单选按钮(JRadioButton)、复选框(JCheckBox)和组合框(JComboBox)这8种。(1)JLabelJLabel是其内容只能浏览但不能修改的组件,可以用于显示文字,也可以用于显示图标,一般为用户提供相关的提示信息。(2)JTextFieldJTextField用于显示或编辑单行文本,但不能显示或编辑多行文本。(3)JPasswordFieldJPasswordField类是JTextField类的子类,可以使用JTextField类的方法。该组件常用于输入密码,在JPasswordField组件中输入的文字会被其他字符(如“*”)替代。(4)JTextAreaJTextArea组件用于显示或编辑多行文本。(5)JButtonJButton是GUI应用程序中非常重要的一种组件,当用户单击按钮时,将会自动执行与该按钮关联的程序,从而实现预定的功能。(6)JRadioButtonJRadioButton类和JCheckBox类是JToggleButton的子类,JRadioButton类可以实现“多选一”的操作,即在一组单选按钮中选择其中一个。它们可以使用AbstractButton抽象类中的多个方法,如addItemListener()、setText()、isSelected()等。因为单选按钮是在一组按钮中选择一个,所以必须将单选按钮分组,即指明一个组中包含哪些单选按钮,在IDE中可以通过属性窗口的buttonGroup属性将单选按钮加入单选按钮组。(7)JCheckBoxJCheckBox组件可以实现在一组在复选框中选择多个复选框的操作。
前导知识【知识7-5】认知Swing的对话框及其相关方法对话框是一种类似窗口的容器,与一般窗口的区别在于它依赖于其他窗口(当它所依赖的窗口消失或最小化时,对话框也消失;窗口还原时,对话框又会自动恢复)。对话框还具有模态特性。(1)JDialog对话框JDialog对话框是有边框、有标题的顶层容器。对话框分为模态对话框和非模态对话框。模态对话框只让程序响应对话框内的事件,对对话框以外的事件程序不响应;非模态对话框可以让程序响应对话框以外的事件。(2)JOptionPane对话框使用JDialog组件来制作对话框时,需要建立对话框中的每一个组件。有时候对话框只是显示一段文字,或一些简单选择(是或否),这时利用JOptionPane组件更方便,并且可以达到和使用JDialog组件同样的效果。利用javax.swing包中的JOptionPane类提供的静态方法可以创建各种类型的简单对话框,包括Message对话框、Confirm对话框和input对话框,这些对话框还可以在建立时通过设置不同参数而产生不同的效果。
前导知识【知识7-6】认知Swing实现多文档界面应用程序的组件多文档界面(MultipleDocumentInterface,MDI)应用程序只有一个父窗口,子窗口在父窗口内显示。在父窗口内建立一个桌面面板(JDesktopPane)作为桌面,通过继承JInternalFrame类建立子窗口。子窗口可在父窗口内打开、关闭、最大化和最小化。(1)桌面面板桌面面板是一种特殊的层面板,用来建立虚拟桌面,它可以显示并管理众多内部窗口的层次关系。桌面面板的构造方法为JDesktopPane()。(2)内部窗口内部窗口(JInternalFrame)的使用与JFrame相似,可以设置最大化、最小化、关闭、添加菜单等功能。不同的是JInternalFrame不能单独出现,必须依附在上层组件上,一般加入JDesktopPane进行管理。7.1创建JFrame窗口并添加组件7.2事件监听与对话框使用7.4在JFrame窗体中创建并使用菜单学习要点7.3在JFrame窗体中创建并使用快捷菜单7.57.67.7在JFrame窗体中创建并使用工具栏在可视化设计环境中设计窗口并添加组件应用JTable组件设计JavaGUI程序任务7-1-1
设计用户登录窗口【任务描述】
创建1个用户登录窗口,具体要求如下。设置窗口风格为Windows风格。设置窗口标题为“用户登录”。设置窗口的宽度为300px、高度为150px。设置窗口图标为QQ1.gif。控制窗口位于屏幕中心位置。控制窗口移到最前。设置窗口可见。设置关闭行为:当窗口关闭时,隐藏并处理该窗口。任务7-1-2
在用户登录窗口中添加JLabel组件【任务描述】
创建1个用户登录窗口,创建1个标签对象,将标签添加到窗口容器中。【知识7-7】在JFrame窗体中添加组件在Swing中,JPanel组件及其子类可以直接添加组件,在容器中添加组件有以下两种方式。(1)使用getContentPane()方法获取内容面板,并将标签加入组件。在容器中添加组件的代码如下。JFrameframe=newJFrame();ContainerobjContainer=frame.getContentPane()
;
//获取内容面板objContainer.add(组件对象)
;
//将标签添加到内容面板中也可以写成如下形式。frame.getContentPane().add(组件对象)
;
(2)建立一个JPanel之类的中间容器,把组件添加到中间容器中,并使用setContentPane()方法把该容器设置为内容面板。示例代码如下。JFrameframe=newJFrame()
;JPaneljp=newJPanel()
;jp.add(组件对象);frame.setContentPane(jp)
;
//把jp设置为内容面板任务7-1-3
运用手动布局方式对用户登录窗口中的组件进行布局【任务描述】
创建1个用户登录窗口,在该窗口容器中添加4个标签对象、1个文本字段组件、1个口令字段组件和2个按钮组件,运用手动布局方式布局窗口中的组件并设置组件的大小。【知识7-8】对窗体中的组件进行布局Java为了实现跨平台的特性并且获得动态的布局效果,将容器内所有组件安排给一个布局管理器管理,并将组件的排列顺序、大小、位置等功能授权给对应的布局管理器管理。不同的布局管理器使用不同的算法和策略。容器可以通过选择不同的布局管理器来设置组件的布局方式。布局管理器主要包括FlowLayout、BorderLayout、GridLayout、CardLayout和GridBagLayout。另外,可以使用手动布局方式布局组件。手动布局方式直接定义了组件的位置和大小,即先将一个容器的布局设置为空布局(null),再使用setBounds(intx,inty,intwidth,intheight)方法设置组件在容器中的位置和大小。1.Java的布局方式(1)流式布局使用流式布局(FlowLayout)时,组件从左上角开始,按从左到右、从上到下的方式排列。这种布局方式在默认情况下,组件居中,间距为5px,是内容面板和Applet的默认布局方式。(2)边框布局使用边框布局(BorderLayout)时,组件被置于容器的东、南、西、北、中的位置。这种布局方式是JFrame、JWindow和JDialog等对象的默认布局方式。任务7-1-3
运用手动布局方式对用户登录窗口中的组件进行布局【知识7-8】对窗体中的组件进行布局(3)网格布局使用网格布局(GridLayout)时,将容器区域划分为一个矩形网格,组件按行和列排列。当所有的组件大小相同时,可以使用网格布局。网格布局以行为基准,按行优先顺序排列,在组件数目较多时自动扩展列,在组件数目较少时自动收缩列。网格布局的行数始终不变。(4)卡片布局使用卡片布局(CardLayout)时,组件会像卡片一样排列,多个组件拥有同一个显示区域,但同一时刻只能显示一个组件。(5)网格袋布局网格袋布局(GridBagLayout)与网格布局类似,也在网格中定位组件,不同的是,网格袋组件不显示规定网格中的行数和列数,而是根据它布局的组件的约束条件确定行数和列数,并且允许组件跨越多个网格单元。2.Java的空隙类进行组件布局时,还可以使用空隙类设置组件之间的间距,使组件显示效果更好。(1)定义方形空隙Componentcomponent=Box.createRigidArea(size);(2)定义水平空隙Componentcomponent=Box.createHorizontalGlue(size);(3)定义垂直空隙Componentcomponent=Box.createVerticalStrut(size);7.1创建JFrame窗口并添加组件7.2事件监听与对话框使用7.4在JFrame窗体中创建并使用菜单学习要点7.3在JFrame窗体中创建并使用快捷菜单7.57.67.7在JFrame窗体中创建并使用工具栏在可视化设计环境中设计窗口并添加组件应用JTable组件设计JavaGUI程序任务7-1-3
运用响应动作事件实现用户登录功能并使用对话框【任务描述】
参考程序Example7_3.java创建1个用户登录窗口,该窗体类继承自JFrame类,并实现ActionListener监听接口。在窗体类的构造方法中注册【取消】按钮btnCancel的动作事件监听者为当前对象。编写动作事件处理方法actionPerformed()的程序代码来响应用户的单击操作,并在代码中使用对话框输出提示信息。【知识7-9】认知事件监听与响应动作事件Java处理事件响应基本沿用AWT的事件类和监听接口,尽管Swing也定义了事件类和监听接口,但普遍使用的还是AWT的事件类和监听接口。基本的事件处理使用java.awt.event包中的类实现,同时javax.swing.event包中增加了一些新的事件类和监听接口。AWT事件类都是从AWTEvent继承来的,常用的事件有窗口事件(WindowEvent)、鼠标事件(MouseEvent)、键盘事件(KeyEvent)、焦点事件(FocusEvent)、动作事件(ActionEvent)、项目事件(ItemEvent)、文本事件(TextEvent)等。任务7-1-3
运用响应动作事件实现用户登录功能并使用对话框【知识7-9】认知事件监听与响应动作事件事件监听接口、适配器响应方法事件源窗口事件WindowListener、WindowAdapterwindowOpened(WindowEvente)、windowActivated(WindowEvente)、windowClosing(WindowEvente)、windowClosed(WindowEvente)、windowDeactivated(WindowEvente)、windowDeiconified(WindowEvente)、windowIconified(WindowEvente)Window鼠标事件MouseListener、MouseAdaptermouseClicked(MouseEvente)、mouseEntered(MouseEvente)、mouseExited(MouseEvente)、mousePressed(MouseEvente)、mouseReleased(MouseEvente)JComponentMouseMotionListenermouseDragged(MouseEvente)、mouseMoved(MouseEvente)JComponent键盘事件KeyListener、KeyAdapterkeyPressed(KeyEvente)、keyReleased(KeyEvente)、keyTyped(keyEvente)JComponent焦点事件FocusListener、FocusAdapterfocusGained(FocusEvente)、focusLost(FocusEvente)JComponent动作事件ActionListeneractionPerformed(ActionEvente)AbstractButton、JComboBox、JTextField、Timer项目事件ItemListenerItemStateChanged(ItemEvente)AbstractButton、JComboBox文本事件TextListenertextValueChanged(TextEvente)JTextField表7-4
事件对应的监听接口、适配器、响应方法和事件源任务7-1-3
运用响应动作事件实现用户登录功能并使用对话框【知识7-9】认知事件监听与响应动作事件1.动作事件图形界面程序要实现交互功能,就必须不断监听单击鼠标和敲击键盘等事件。只有这样,应用程序才能对发生的事件做出响应。单击按钮或在文本框中按【Enter】键,都会发生动作事件。Java处理事件涉及几个重要的概念:事件源、监听者、事件接口。(1)事件源能够产生事件的对象称为事件源,如按钮、文本框、菜单等,鼠标或键盘在事件源上操作将产生事件。不同的事件源会产生不同的事件,例如,单击按钮将产生动作事件,打开窗口将产生窗口事件。(2)监听者实现事件响应的关键是一旦产生事件,监听者必须自动执行响应程序。监听者是指对事件进行监听,以便对产生的事件进行处理的对象。事件源通过调用相应的方法将某个对象注册为监听者。每个事件源都有注册监听者的方法,例如,通过调用如下方法为按钮类JButton注册动作事件监听者:按钮变量名.addActionListener(监听者);。如果动作事件监听者是当前对象,则“监听者”为“this”,即代码形式为变量名.addActionListener(this);。这样,一旦单击按钮,就会产生一个动作事件,如果按钮注册了监听者,则事件对象将传送到监听者的actionPerformed()方法,并且监听者会自动执行这个方法。(3)事件接口事件接口规定了监听者需要实现的用于处理事件的方法。如果一个类的对象能作为监听者,那么该类必须实现相应的事件接口,即必须在类体中给出该接口中所有方法的方法体。动作事件的接口为ActionListener,该接口只有一个方法:publicvoidactionPerformed(ActionEvente)。该方法就是响应单击按钮事件的方法。因为接口不能直接创建实例对象,所以最终负责监听事件的是实现该接口的类的对象。与实现其他接口一样,实现监听接口必须重写接口中的抽象方法。重写的方法体就是事件响应程序,即事件产生后自动运行的程序。任务7-1-3
运用响应动作事件实现用户登录功能并使用对话框【知识7-9】认知事件监听与响应动作事件2.鼠标事件鼠标动作引起的事件称为鼠标事件。鼠标事件的事件源一般为容器。当鼠标按下、释放、单击时会引发鼠标事件(对应MouseEvent类),MouseEvent类存于java.awt.event包中。可以通过实现java.awt.event包中的MouseListener接口和MouseMotionListener接口处理鼠标事件。3.事件适配器Java提供了鼠标适配器(MouseAdapter)类和鼠标移动适配器(MouseMotionAdapter)类来处理鼠标事件。MouseAdapter类实现了MouseListener接口;MouseMotionAdapter类实现了MouseMotionListener接口,这些类称为适配器(Adapter)类。适配器类重写了接口中的所有方法,但方法体都为空,这样通过继承适配器类实现事件响应时就不必实现接口中的所有方法了,只需重写需要的方法。事件适配器为人们提供了一种简单的实现监听的手段,可以适当减少程序代码的编写量。7.1创建JFrame窗口并添加组件7.2事件监听与对话框使用7.4在JFrame窗体中创建并使用菜单学习要点7.3在JFrame窗体中创建并使用快捷菜单7.57.67.7在JFrame窗体中创建并使用工具栏在可视化设计环境中设计窗口并添加组件应用JTable组件设计JavaGUI程序任务7-2-1
创建记事本主窗口【任务描述】
(1)创建一个450px×300px的JFrame窗口【我的记事本】。(2)在该窗口中添加一个10行10列的JTextArea文本域,用来显示多行信息。(3)创建一个JScrollPane组件,将JTextArea文本域作为其显示组件。(4)向JFrame窗口【我的记事本】中添加JScrollPane组件。任务7-2-2
创建记事本主窗口并添加菜单【任务描述】
(1)创建1个【我的记事本】窗口。(2)在【我的记事本】窗口中添加1个菜单栏,在菜单栏容器中添加4个菜单:【文件】【编辑】【格式】和【帮助】。(3)在【文件】菜单中添加【新建】【打开】【另存为】【退出】4个菜单项和1根分隔线,在【编辑】菜单中添加【复制】【剪切】【粘贴】【全选】【清除】5个菜单项和1根分隔线,在【格式】菜单中添加1个复选框菜单项【自动换行】,在【帮助】菜单中添加1个菜单项【帮助】。(4)设置各个菜单和菜单项的热键。(5)设置各个菜单项的快捷键。(6)为【退出】菜单项编写事件处理程序,实现退出功能。任务7-2-2
创建记事本主窗口并添加菜单【知识7-10】在JFrame窗体中创建并使用菜单菜单组件可以使窗口显示菜单项。Swing提供了3个层次的菜单类,第1层的菜单栏JMenuBar是存放菜单的容器;第2层为菜单JMenu,可以直接添加到JMenuBar中创建顶层菜单,也可以作为其他菜单的子菜单;第3层为菜单项JMenuItem,其中JCheckBoxMenuItem为带复选框的菜单项,JRadioButtonMenuItem为带单选按钮的菜单项。创建菜单时,首先要使用JMenuBar建立一个菜单栏,然后使用JMenu建立菜单,并使用JMenuItem为每个菜单建立菜单项。(1)菜单栏菜单栏(JMenuBar)是菜单的容器,其构造方法为JMenuBar()。(2)菜单菜单(JMenu)是用来存放和整合菜单项的组件,它可以是单一层次的结构,也可以是一个层次化的结构。(3)菜单项JMenuItem类继承自AbstractButton类,因此JMenuItem对象具有许多AbstractButton类的特性,也可以说JMenuItem是一种特殊的按钮。同时,可以在JMenuItem中添加图标,当选择某一个菜单项时就如同按下按钮一样,会触发动作事件。(4)复选框菜单项JCheckBoxMenuItem类用于建立一个复选框菜单项(JCheckBoxMenuItem)。(5)单选按钮菜单项JRadioButtonMenuItem类用于建立一个单选按钮菜单项(JRadioButtonMenuItem)。7.1创建JFrame窗口并添加组件7.2事件监听与对话框使用7.4在JFrame窗体中创建并使用菜单学习要点7.3在JFrame窗体中创建并使用快捷菜单7.57.67.7在JFrame窗体中创建并使用工具栏在可视化设计环境中设计窗口并添加组件应用JTable组件设计JavaGUI程序任务7-2-3
为记事本窗口添加快捷菜单
【任务描述】
(1)创建1个【我的记事本】窗口。(2)在【我的记事本】窗口中添加1个快捷菜单栏,在快捷菜单栏容器中添加1个菜单【文件】、3个单选按钮菜单项【复制】【剪切】【粘贴】、2根分隔线和1个菜单项【退出】,【文件】菜单中包含3个菜单项——【新建】【打开】【另存为】。(3)设置菜单项的快捷键。(4)为JFrame窗口的文本域添加鼠标事件监听器,实现右击文本域后弹出快捷菜单的功能。(5)为【退出】菜单项编写事件处理程序,实现退出功能。任务7-2-3
为记事本窗口添加快捷菜单【知识7-11】在JFrame窗体中创建与使用快捷菜单快捷菜单(JPopupMenu)是一种特殊的菜单,其性质与菜单基本一致,但是JPopupMenu并不固定在窗口中的固定位置,而是由鼠标和系统决定其位置。JPopupMenu的构造方法如下。①JPopupMenu()。
②JPopupMenu(Stringtext)。
其中,参数text用于指定弹出快捷菜单的文本内容。弹出快捷菜单一般通过鼠标事件实现,示例代码如下。publicvoidmouseReleased(MouseEvente){if(e.isPopupTrigger()){popupMenu.show(e.getComponent(),e.getX(),e.getY());}}7.1创建JFrame窗口并添加组件7.2事件监听与对话框使用7.4在JFrame窗体中创建并使用菜单学习要点7.3在JFrame窗体中创建并使用快捷菜单7.57.67.7在JFrame窗体中创建并使用工具栏在可视化设计环境中设计窗口并添加组件应用JTable组件设计JavaGUI程序任务7-2-4
为记事本窗体添加工具栏
【任务描述】
(1)创建1个【我的记事本】窗口。(2)在【我的记事本】窗口中添加1个工具栏,在工具栏中添加【新建文件】【打开文件】【保存文件】【复制文件】【剪切文件】【粘贴文件】和【退出】7个按钮、2根分隔线。要求鼠标指针移动到按钮上时出现边框。(3)为工具栏中的【新建文件】和【退出】按钮编写事件处理程序。任务7-2-4
为记事本窗体添加工具栏
【知识7-12】在JFrame窗体中创建与使用工具栏使用JToolBar类创建一个工具栏对象,然后使用add()方法将按钮添加到工具栏中。JToolBar类的构造方法如下。①JToolBar()。
②JToolBar(Stringtext)。
③JToolBar(intorientation)。
④JToolBar(Stringtext,intorientation)。
其中,参数text用于设置工具栏中按钮的文本内容;参数orientation用于设置工具栏中按钮的位置。JToolBar类的常用方法如下。①voidsetFloatable(booleanb):设置工具栏是否可以浮动。②voidsetRollover(booleanrollover):鼠标指针移动到按钮上时是否出现边框。③voidsetOrientation(into):设置工具栏方向。④voidsetToolTipText():设置按钮提示文字。⑤voidaddSeparator():添加分隔线。7.1创建JFrame窗口并添加组件7.2事件监听与对话框使用7.4在JFrame窗体中创建并使用菜单学习要点7.3在JFrame窗体中创建并使用快捷菜单7.57.67.7在JFrame窗体中创建并使用工具栏在可视化设计环境中设计窗口并添加组件应用JTable组件设计JavaGUI程序任务7-3
可视化设计用户登录程序【任务描述】
在ApacheNetBeansIDE可视化设计环境中创建图7-19所示的【用户登录】窗口,在“用户名”文本框中输入正确的用户名,在“密码”文本框中输入正确的密码,单击【登录】按钮,弹出“成功登录系统”的提示信息对话框,否则弹出“用户名有误”或者“密码不正确”的提示信息对话框。单击【取消】按钮,会弹出一个供用户进行选择的对话框。任务7-3
可视化设计用户登录程序【知识7-13】创建与使用Java中的包1.初识包利用面向对象程序设计技术开发软件时,程序员需要定义许多类并使其共同工作,有些类可能要反复被使用。为了使这些类易于查找和使用、避免命名冲突以及限定类的访问权限,程序员可以将一组功能相关的类与接口打包成一个包(Package)。Java通过包可以方便地管理程序的类和接口。包是类和接口的集合,或者说包是类和接口的容器,它将一组类或接口集中到一起。在文件系统中,包被转换成一个文件夹。包中还可以有包,形成一种层次结构。包的优点主要体现在以下几个方面。(1)程序员可以很容易地确定包中的类是相关的,并且根据所需要的功能找到对应的类。(2)包可以防止类命名混乱。每个包都创建了一个独立的命名空间,因此位于不同包中的相同类名不会产生冲突。(3)包可以控制内部类、接口、成员变量和方法的可见性。在包中,除了访问权限声明为private的成员变量和方法之外,类中所有的成员变量和方法还可以被同一包中的其他类和方法访问。2.使用package创建包
创建包就是将类与接口放入指定的包中,创建包可通过在类和接口的源文件中使用package相应语句实现。声明包的语句格式如下。package包名称1[.包名称2……];其中,符号“.”代表分隔符;“包名称1”为最外层的包;“包名称2”为内层的包。示例代码如下。packagepackage7_3;在ApacheNetBeansIDE中,可以快捷创建包。任务7-3
可视化设计用户登录程序【知识7-13】创建与使用Java中的包3.Java中常用的包Java提供了以下几个常用的包。(1)java.lang:该包包含Java编程所需要的基础类和接口,如Object类、Math类、String类、StringBuffer类、Thread类、Throwable类和Runnable接口等。这个包是唯一
一个可以不用导入就可以使用的包。(2)java.io:该包包含标准I/O类,如文件操作等。(3)java.nio:为了完善io包的功能,提高io包性能而创建的一个新包。(4)java.util:该包包含丰富的常用工具类,包括自成体系的集合框架、事件模型、日期时间、国际化支持工具等许多有益的工具,如Date类、Vector类等。(5):该包包含实现网络功能的类,如URL、URLConnection等。(6)java.sql:该包包含访问数据库的类和接口,如Connection、Statement、ResultSet等。(7)java.awt:该包包含所有创建用户界面(UserInterface,UI)、绘图及图像处理的类,其部分功能正在被java.swing取代。(8)java.awt.event:该包包含事件处理的类。(9)java.applet:该包包含创建Applet以及Applet与其运行上下文环境进行通信所需要的类。(10)javax.servlet:该包包含JSP、Servlet等使用到的类。任务7-3
可视化设计用户登录程序【知识7-13】创建与使用Java中的包4.使用import导入包中的类将类组织成包是为了更好地利用包中的类。通常一个类只能直接引用与它在同一个包中的类。如果要使用其他包中的类,则可以在类名前面加上完整的包名,即使用“包名称.类名”的形式,但这种方式有些烦琐,一般只有两个包中含有同名的类时,为了对两个同名类加以区分时才使用。更简便的方法是使用import语句
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新人员工年终工作总结
- 公司行政部门工作总结
- 会计职业生涯规划
- 货场摊位租用合同范本
- 浙教版数学七年级上册3.2《实数》听评课记录
- 武术听评课记录及评价
- 长丰洗手间防水施工方案
- 酸碱中和反应的热力学研究及测定
- 陇南屋面涂膜防水施工方案
- 北师大版数学四年级下册《小数的意义(一)》听评课记录2
- 中国人口研究专题报告-中国2025-2100年人口预测与政策建议-西南财经大学x清华大学-202501
- 2025年度厨师职业培训学院合作办学合同4篇
- 《组织行为学》第1章-组织行为学概述
- 2024年山东水利职业学院高职单招职业技能测验历年参考题库(频考版)含答案解析
- 辽宁省名校联盟2025年高三1月份联合考试 语文试卷(含答案详解)
- 25版六年级寒假特色作业
- 浙江省杭州市9+1高中联盟2025届高三一诊考试英语试卷含解析
- 市场营销试题(含参考答案)
- 2024年山东省泰安市高考物理一模试卷(含详细答案解析)
- 护理指南手术器械台摆放
- 肿瘤患者管理
评论
0/150
提交评论