java编程高级-gui编程

java编程高级-gui编程

ID:33489627

大小:1.53 MB

页数:46页

时间:2019-02-26

上传者:jjuclb
java编程高级-gui编程_第1页
java编程高级-gui编程_第2页
java编程高级-gui编程_第3页
java编程高级-gui编程_第4页
java编程高级-gui编程_第5页
资源描述:

《java编程高级-gui编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

JAVA编程高级——GUI编程3Sept.2008©NeusoftConfidential GUI编程目标:JavaSwing包,什么是组件教学方法:讲授ppt+和容器的概念及相关类。布局管理上机练习器。Swing中常用组件的使用。Swing中的事件处理模型。 本章要点•GUI概述•Swing容器和组件•布局管理器•GUI事件处理 Contents1GUI概述2Swing容器和组件3布局管理器4GUI事件处理 GUI概述•GUI(GraphicalUserInterface)图形用户界面通过java应用程序提供给用户操作的图形界面,包括窗口、菜单栏、工具条、按钮等组件和其他各种屏幕元素 GUI概述•JavaGUIJava提供了两个GUI的开发包:java.awtjavax.swingjava.awt包AWT是javaGUI的早期版本,AWT中提供了基本的GUI设计工具,但组件种类有限,无法设计所需的所有功能。java.awt包中的抽象类Component是所有JavaGUI组件的共同父类,它规定了所有GUI组件的基本特性。javax.swing包Swing是构筑在AWT上层的一组GUI组件集合,与AWT相比Swing提供了更完整的组件,引入了许多新的特性和能力。 GUI概述•GUI组件按其作用可分为两大类:基本组件(简称组件、构件)容器GUI组件:也称构件,其上不能容纳其他组件,如按钮、文本框等图形界面元素。容器:是一种特殊的组件,用来容纳其他组件,如窗口、对话框等。菜单栏按钮文本框下拉列表框窗口 Contents1GUI概述2Swing容器和组件3布局管理器4GUI事件处理 Swing容器和组件•Swing组件继承关系图FrameJFramewindowDialogJDialogJcomponentobjectcomponentcontainerJTextcompontentJLabelJTableJListAbtractButtonJPanel..JComboBoxJMenuItemJToggleButtonJButtonJMenuJCheckBoxJRadioButton Swing容器和组件•Swing容器及组件的使用JButton…JTable中间容器(JPanel等)JMenu内容面板(contentPane)菜单条(JMenuBar等)顶层容器(JFrame等) Swing容器和组件•创建顶层容器(窗口)—类JFrame的使用可通过构造函数创建JFrame类对象,生成不可视的窗体组件。构造一个初始时不可见的新窗体:JFrameframe=newJFrame();创建一个初始不可见的、具有指定标题title的新窗体:JFrameframe=newJFrame(Stringtitle);示例:JFrameDemo.java Swing容器和组件•创建顶层容器(窗口)—类JFrame的使用设置窗口体显示位置:setLocation(intx,inty)设置窗口体大小:setSize(intwidth,intheight)设置窗口体是否可见:setVisible(booleanb) Swing容器和组件•获得内容面板(ContentPane)示例:JFrameDemo.java可通过JFrame对象的getContentPane()方法获得内容面板。获得窗口体上的内容面板:JFrameframe=newJFrame();Containercon=frame.getContentPane();在内容面板上添加组件add(Componentcomp);add(Stringloc,Componentcomp); Swing容器和组件•创建基本组件示例:JFrameDemo.java基本组件分类:文本输入组件:文本框(JTextField)、密码域(JPasswordField)、文本域(JTextArea)、标签(JLabel)按钮组件:普通按钮(JButton)、复选框(JCheckBox)、单选按钮(JRadioButton)下拉列表框(JComboBox)按钮文本框下拉列表框 Swing容器和组件•创建基本组件—文本组件示例:JFrameDemo.java标签(JLabel):使用JLabel类可创建表示短文本字符串或图像或二者的显示标签组件对象。创建文字或图像显示标签的构造方法:JLabel(Stringtext)JLabel(Iconimage);可指定文本水平对齐方式:JLabel(Stringtext,inthorizontalAlignment)其中的取值可以是SwingConstants中定义的LEFT、CENTER、RIGHT、LEADING或TRAILING常量 Swing容器和组件•创建基本组件—文本组件示例:JFrameDemo.java文本框(JTextField):使用JTextField类可创建表示单行文本框的组件对象。构造一个具有指定列数的新的空TextField:JTextField(intcolumns)构造一个用指定文本初始化的新TextField:JTextField(Stringtext);获取/设置单行文本:publicStringgetText()publicvoidsetText(Stringt) Swing容器和组件•创建基本组件—文本组件示例:JFrameDemo.java文本域(JTextArea):使用JTextArea类可创建显示纯文本的多行区域的组件对象。创建文字或图像显示标签的构造方法:JTextArea(introws,intcolumns)获取、设置、追加多行文本:publicStringgetText()publicvoidsetText(Stringt)publicvoidappend(Stringstr) Swing容器和组件•创建基本组件—按钮组件示例:JFrameDemo.java普通按钮(JButton):使用JButton类创建普通按钮对象,生成按钮组件。创建一个带文本text的按钮:newJButton(Stringtext)创建一个带图标icon的按钮:newJButton(Iconicon) Swing容器和组件•创建基本组件—复选框示例:JFrameDemo.java复选框(JCheckBox):使用JCheckBox类创建复选框对象,可以让用户选择多个选项。创建一个带文本text的复选框:newJCheckBox(Stringtext)创建一个带文本,并有初始选定状态的复选框:newJCheckBox(Stringtext,booleanselected)获取复选框文本的内容getText() Swing容器和组件•创建基本组件—单选按钮示例:JFrameDemo.java单选按钮(JRadioButton):使用JRadioButton类创建单选按钮组件,但用户每次只能选中一个单选按钮。创建一个带文本text的复选框:newJRadioButton(Stringtext)创建一个带文本,并有初始选定状态的复选框:newJRadioButton(Stringtext,booleanselected)获取复选框文本的内容getText() Swing容器和组件•创建基本组件—单选按钮示例:JFrameDemo.java单选按钮(JRadioButton)将多个单选按钮放入一个单选按钮组:ButtonGroupg=newButtonGroup();将单选按钮添加到同一单选按钮组:add(AbstractButtonb) Swing容器和组件•创建基本组件—下拉列表框示例:JFrameDemo.java下拉列表框(JComboBox):使用JComboBox类可以创建下拉列表对象。创建一个没有选项的下拉列表:newJComboBox()创建含有指定数组元素的下拉列表:newJComboBox(Object[]items)向下拉列表中添加选项/获得所选项voidaddItem(Objectobj)/ObjectgetSelectedItem() Swing容器和组件•中间容器类—JPanel示例:JFrameDemo.javaJPanel类是最简单的容器类,可容纳各类基本组件,包括其它面板JPanel类作为面板组件可添加至窗体jframe.getContentPane().add(JPanelp)jframe.setContentPane(JPanelp)创建一个流式布局的JPanelnewJPanel()创建一个含有指定布局管理器的JPanelnewJPanel(LayoutManagerlayout) Swing容器和组件•中间容器类—JScrollPane(滚动面板)使用JScrollPane类可创建带滚动条的中间容器对象创建一个空的JScrollPanenewJScrollPane()创建一个显示指定组件内容的JScrollPanenewJScrollPane(Componentview)示例:JFrameDemo.java Swing容器和组件•常用组件—菜单(JMenuBar)示例:JFrameDemo.java在JFrame中,有一个菜单栏(JMenuBar)用来建立菜单菜单栏(JMenuBar)菜单菜单项(JMenu)(JMenuItem)子菜单(JMenu) Swing容器和组件•常用组件—菜单(JMenuBar)示例:JFrameDemo.java在Swing中建立菜单一般需要3步:建立一个菜单栏(JMenuBar),并添加到窗口体(JFrame)中newJMenuBar()setJMenuBar(JMenuBarmenubar)建立菜单(JMenu),加到菜单栏(JMenuBar)中newJMenu(Stringname)add(JMenumenu)建立菜单项(JMenuItem)或子菜单(JMenu),加到菜单中(JMenu)newJMenuItem(Stringitemname) Swing容器和组件•常用组件—表格(JTable)可使用JTable、DefaultTableModel等类实现表组件的功能。 Swing容器和组件•常用组件—表格(JTable)示例:JFrameDemo.javajavax.swing.table包中的JTable类提供二维单元表的组件的功能常用构造函数有显示二维数组rowData中的值,其列名称为columnNames:newJTable(Object[][]rowData,Object[]columnNames)使用model作为数据模型newJTable(TableModelmodel) Swing容器和组件•常用组件—表格(DefaultTableModel)DefaultTableModel类是javax.swing.table包中TableModel接口的实现类,使用一个Vector来存储单元格的值对象,该Vector由多个Vector组成创建一个列属性已知的,rowCount行的表格模型:newDefaultTableModel(Object[]columnNames,introwCount)示例:JFrameDemo.java Contents1GUI概述2Swing容器和组件3布局管理器4GUI事件处理 布局管理器•布局管理器简介Java提供了布局管理器来管理组件在容器中的布局,java.awt包中常用的布局管理器类有:BorderLayout-边界布局FlowLayout-流式布局CardLayout-卡片布局GridLayout-网格布局GridBagLayout-网袋布局 布局管理器•布局管理器简介 布局管理器•BorderLayout(边界布局管理器)BorderLayout将容器划分为东、南、西、北、中五个区域,可以将组件分放在这五个区域中。原则上,BorderLayout允许最多放置五个组件,而可借助面板类Panel添加更多的组件。BorderLayout是窗口体(JFrame)的默认布局 布局管理器•FlowLayout(流式布局管理器)FlowLayout把容器中的组件从左到右,从上到下依次排列。如果某容器采用FlowLayout布局,那么其add方法中指定的位置参数将被忽略。当容器窗口大小改变时,组件的位置可能会发生变化,但组件尺寸不变。FlowLayout是面板(JPanel)的默认布局 布局管理器•设置容器的布局管理器修改窗口体(顶层容器,JFrame)的布局管理器voidsetLayout(LayoutManagermanager)修改中间容器(JPanel)的布局管理newJPanel(LayoutManagermanager)voidsetLayout(LayoutManagermanager)取消布局管理器/设置各组件的大小和位置setLayout(null)setBounds(intx,inty,intwidth,intheight) Contents1GUI概述2Swing容器和组件3布局管理器4GUI事件处理 GUI事件处理•事件处理机制在Java的GUI程序中,事件用于描述程序、系统或者使用者的活动,是图形系统的最基本的功能之一。在一个图形界面的程序中,用户点击一个按钮,这时系统便会创建一个事件,并且把该事件交给相应的程序去处理。 GUI事件处理•事件处理模型事件源:发生事件的组件。事件:用户对组件的操作。事件处理程序:负责处理事件的方法事件监听器:存放事件处理器方法的类对象。事件监听器注册:将一个事件监听器对象同某个事件源的某种事件进行关联的过程。 GUI事件处理•事件处理模型3.产生事件对象1.监听器的产生2.注册组件(事件源)事件监听器A事件处理a4.把对象传给监听器事件处理b事件监听器B事件处理c事件监听器C GUI事件处理•事件处理5步骤示例:JFrameDemo.java1、监听器的产生。实现每个监听接口的类就可以作为监听器来使用。2、把监听器注册到组件上。采用addXXXListener的方式。如:button.addActionListener(监听器)。3、事件的产生。如按下按钮,就产生该事件的一个对象。4、系统把产生出来的事件对象自动返回给已经注册过的监听器。5、由该监听器来指派相应的方法来处理事件。这个一般由我们开发者来编写处理代码。 GUI事件处理•常见的事件及其事件监听器事件类事件监听器事件源(组件)产生事件的时机ActionEventActionListenerButton按钮按下时List双击List中的项目时MenuItem选取菜单中的某项时TextField按下Enter时AdjustmentEveAdjustmentListeneScrollbar滚动滚动条时ntrItemEventItemListenerCheckbox选中某个选项时CheckboxMenuIt勾选菜单中某个选项时emChioce选取下拉菜单中某个选项时List选取List某个选项时TextEventTextListenerTextArea文本内容改变时TextField文本内容改变时 GUI事件处理•事件监听器及其接口方法事件分类接口名方法ActionEventActionListeneractionPerformed(ActionEvent)ItemEventItemListeneritemStateChanged(ItemEvent)AdjustmentEveAdjustmentListenadjustmentValueChanged(AdjustmentnterEvent)TextEventTextListenertextValueChanged(TextEvent) GUI事件处理•事件适配器为了简化编程,JDK针对大多数事件监听接口定义了相应的实现类,我们称之为事件适配器(XXXAdapter)类。在事件适配器中实现了相应监听器接口中的所有方法,但不做任何操作。一个类只要继承适配器类,如果要对某类事件的某种情况进行处理,只要覆盖相应的方法就可以了,其他方法就再也不用“简单实现”了。示例:JFrameDemo.java GUI事件处理•事件监听器的匿名内部类实现方式如果一个事件监听器类只用于在一个组件上注册监听器事件对象,为了让程序代码更为紧凑,可以用匿名内部类的语法来产生这个事件监听器对象示例TestEvent.java 本章小结•GUI简介•Swing容器和组件•布局管理器•GUI事件处理

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭