版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《Java语言程序设计(一)》串讲主讲人:周立民图形界面设计本部分重点内容框架窗口、按钮事件处理方法,面板和滚动面板、布局设计、文本框事件的处理方法利用文本框和文本区域作数据输入输出的方法。选择框、单选按钮、菜单、对话框以及鼠标事件的处理方法。3AWT概述创建GUI通过java.awt包容器组件布局管理器字体事件图形和绘制方法包含AWT容器组件以图形表示的对象允许用户交互创建并构造用于选择新字体的对象用于用户和系统交互AWT包含内容使用AWT图形方法相对于窗口绘制图形定义GUI组件的位置AWT(重量级组件)4Swing创建GUI通过Javax.swing包Swing包含内容容器组件可改变的外观Java2D图形绘制包含Swing组件以图形表示的对象允许用户交互使用Java2D绘制图形可更换图形界面的风格Swing(轻量级组件,纯Java组件)5轻量级组件可改变的外观MVC结构
性能更稳定优点SwingSwing
(与AWT相比)6Swing容器组件主窗口Swing应用程序创建容器设置容器大小(对框架及面板而言)设置容器可见度(对框架及面板而言)创建顶层容器顶层容器(每个应用程序中至少有一个)内容面板主要显示区域包含
GUI中的可视组件7
javax.swing包
常见容器JFrameJScrollPaneJPanel1.扩展java.awt.Frame类2.用于在Swing程序中创建窗口3.包含边框、标题和用于关闭和图标化窗口的按钮1.中间容器2.用于将较小的轻量级组件组合在一起3.与内容窗格相似,面板在默认情况下不透明管理视区、滚动条及可选的行和列的标题视区Swing容器组件8
javax.swing包1.扩展java.awt.Frame类2.用于在Swing程序中创建窗口3.包含边框、标题和用于关闭和图标化窗口的按钮常用的顶层容器JFrameJScrollPaneJPanel1.中间容器2.用于将较小的轻量级组件组合在一起3.与内容窗格相似,面板在默认情况下不透明1.管理视区、滚动条及可选的行和列的标题视区
Swing容器组件JFrame类的方法JFrame()JFrame(Stringtitle)voidpack()voidsetSize(intwidth,intheight)DimensiongetSize()voidsetTitle(Stringname)JPanel类的方法JPanel()JPanel(LayoutManagerlayout)voidadd(Componentcomp)VoidsetLayout(LayoutManagerlayout)JScrollPane类的方法JScrollPane()JScrollPane(Componentview)voidsetVerticalScrollBarPolicy(intconst)voidsetHorizontalScrollBarPolicy(intconst)9SwingGUI组件JTexFieldJComboBoxJCheckBoxJButtonJRadioButtonJLabelJTexArea10JLabelPropertiesDescription1.Alabelisnotinteractiveanddoesnotrespondtoanyinputevents1.Displaysalabelonform2.InSwing,labelscandisplaytextaswellasimagesJLabel方法说明JLabel()JLabel()创建一个默认的JLabel实例JLabel(Stringtext)以指定的文本创建JLabel实例JLabel(Iconimage)以指定的图像创建JLabel实例getText()返回标签显示的文本字符串setIcon(Iconicon)定义标签将显示的内容setText(Stringtext)定义此组件将要显示的单行文本11JTextFieldPropertiesDescription1.JTextFieldcomponentallowsentering/editingasinglelineoftext.1.JTextFieldisalightweightcomponentthatallowstheeditingofasinglelineoftextJTextField方法说明JTextField()构造一个新的文本输入框JTextField(Stringtext)构造一个新的文本输入框,以指定文本作为初始文本getColumns()返回文本字段中的列数setColumns(intcolumns)设置文本字段中的列数,然后使布局无效setHorizontalAlignment(intvalue)设置文本字段中文本的水平对齐方式:JTextField.LEFTJTextField.CENTERJTextField.RIGHT12JButton属性说明JButton类派生自javax.swing.AbstractButton类,该类由JComponent扩展而来JButton对象包含一个文本标签、图像图标或两者,描述按钮、文本/图标周围的空白区域和边框的用途JButton方法说明JButton()创建不带文本和图标的按钮JButton(Iconicon)创建带图标的按钮JButton(Stringtext)创建带文本的按钮JButton(Stringtext,Iconicon)创建带文本和图标的按钮setRolloverIcon(Iconimg)当鼠标经过时,显示指定的图标setSelectedIcon(Iconimg)当选择按钮时,显示img指定的图标13JCheckBoxJCheckBox方法说明JCheckBox()创建初始非选中的复选框,且不带文本或图标JCheckBox(Stringtext)用指定的文本创建初始非选中的复选框。JCheckBox(Stringtext,booleanselected)用指定文本创建一个复选框,并指定是否初始选中该复选框14JRadioButtonJRadioButton方法说明JRadioButton()创建初始非选中的单选按钮,不设置其文本JRadioButton(Stringtext)用指定的文本创建非选中的单选按钮JRadioButton(Stringtext,booleanselected)用指定的文本和选择状态创建单选按钮15JComboBox属性说明在Swing中,组合框由
JComboBox类表示。ComboBox是文本字段和下拉列表的组合,让用户可以键入值或从显示给用户的值中进行选择JComboBox方法说明JcomboBox()创建一个下拉框实例addItem(Objectobj)将项添加至项的列表getItemAt(intindex)返回指定索引位置的列表项getItemCount()返回列表(作为对象)中的项数getSelectedItem()将当前选择的项作为一个对象返回getSelectedIndex()返回当前选择项的索引位置16事件处理程序!用户交互事件单击鼠标按下/释放鼠标按钮对象状态改变调用事件处理确定发生的事件的类型确定生成的事件的组件编写合适的代码处理事件17
源对象监听器事件传播事件的实例方法传递途径代理事件模型Swing中的GUI组件适配器对象事件处理程序18
源对象监听器事件传播事件实例方法传递途径代理事件模型Swing中的GUI组件
适配器对象事件处理程序(java.awt.event)Event类接口ActionEventActionListenerAdjustmentEventAdjustmentListenerComponentEventComponentListenerFocusEventFocusListenerItemEventItemListenerWindowEventWindowListenerTextEventTextListenerMouseEventMouseListener,MouseMotionListenerKeyEventKeyListener19布局管理器用户界面上的屏幕组件可以按照一定的格式布局例如水平排列,或按网格方式排列布局管理器类是一组类,它实现java.AWT.LayoutManager
接口帮助在容器中放置组件Java中可用的各种布局如下:BorderLayoutFlowLayoutGridLayout20BorderLayout上边的组件
左边的组件右边的组件下边的组件容器NorthSouthEastWestCENTER21WestEastBorderLayout上边的组件
右边的组件
左边的组件下边的组件容器NorthSouthCenter方法说明BorderLayout()创建新的BorderLayout,组件之间没有间距
setHgap(inthgap)将组件间的水平间距设置为指定的值setVgap(intvgap)将组件间的垂直间距设置为指定的值22FlowLayout容器流布局是面板的默认布局管理器左上角右下角依次排序的组件垂直或水平间距23FlowLayout容器流布局是面板的默认布局管理器左上角右下角顺序排列的组件垂直或水平间距方法说明FlowLayout()构造新的中间对齐的FlowLayout,将垂直和水平间距保留为5个像素setAlignment(intalign)设置指定布局的对齐方式setHgap(inthgap)设置指定布局的水平间距setVgap(intvgap)设置指定布局的垂直间距24GridLayout行列组件大小相同重新调整组件大小以适合各自的单元指定网格中的行数和列数,创建网格布局25GridLayout行列组件大小相同重新调整组件大小以适合各自的单元指定网格中的行数和列数,创建网格布局方法描述GridLayout()创建网格布局,默认为每个组件占用一整列和一单行GridLayout(introws,intcols)用指定的行数和列数创建网格布局。GridLayout(introws,intcols,inthgap,intvgap)用指定的行数和列数、指定的水平和垂直间距创建网格布局setColumns(intcols)将相应布局中的列数设置为指定值setHgap(inthgap)将相应布局中的水平间距设置为指定值setVgap(intvgap)将相应布局中的垂直间距设置为指定值setRows(introws)将相应布局中的行数设置为指定值26总结Swing是在AWT基础上发展起来的轻量级组件,用于开发JavaGUI应用程序容器对象是能够容纳其他Swing组件的一种组件。容器负责对它包含的组件进行布局。常用的容器有
JFrame、JPanel
和JScrollPane组件可置于用户界面上,并可使其显示或改变大小。常用的组件有JLabel、JTextField、JTextArea、JButton、JCheckBox、JRadioButton和JComboBox要处理事件,可使用事件处理程序,以执行所需操作
标准事件适配器或匿名内部类适配器可用于处理事件布局管理器可在容器中自动定位组件27菜单显示一个项目列表,指明用户可以执行的各项操作
文件编辑格式帮助字体段落项目符号和编号背景色红色绿色黑色菜单子菜单28菜单包含javax.swing
包的菜单类的类层次结构ObjectComponentContainerJComponentJMenuBarJSeparatorAbstractButtonJPopupMenuJMenuJCheckboxMenuItemJRadioButtonMenuItemJMenuItem29JMenuBar类只要选中JMenuItem,就会产生通过重写actionPerformed()方法进行处理的ActionEvent
JMenuBar文件编辑格式帮助新建打开关闭JMenuJMenuItem30JMenuBar类JMenubar类SingleSelectionModel跟踪当前选定的菜单31方法\说明add(Jmenum)将菜单m添加至菜单条中conuntJMenus()获得菜单条中菜单的个数getJMenu(intp)取得菜单条中的菜单Remove(Jmenum)删除菜单条中的菜单mJMenuBar类32JMenu类JMenu
组件有两个用途当它添加至JMenuBar
时,将显示为文本字符串当用户单击此菜单项时,则显示一个弹出式菜单
JMenuJMenuItemJSeparatorJCheckBoxMenuItemJRadioButtonMenuItem33JMenu类JPopupMenuJMenu类
当用户单击JMenu时,显示JMenu的菜单项
34方法\说明Jmenu()建立一个空标题的菜单Jmenu(Strings)建立一个标题为s的菜单add(JMenuItemitem)向菜单增加由参数item指定的菜单项.add(Jmenumenu)向菜单增加由参数menu指定的菜单,实现在菜单嵌入子菜单.addSeparator()在菜单选项之间画一条分隔线JMenu类35方法\说明getItem(intn)得到指定索引处的菜单项getItemCount()得到菜单项数目Insert(MenuItemitem,intn)在菜单的位置n插入菜单项itemremove(intn)删除菜单位置n的菜单项removeAll()删除菜单中所有菜单项JMenu类36JMenuItem类JMenuItem
组件通常是JMenu
或JPopupMenu
中选项的标题
在JMenuItem
中除了可以添加字符串外,还可添加图标37方法\说明JMenuItem()构造无标题的菜单项JMenuItem(Strings)构造有标题的菜单项setEnabled(booleanb)设置当前菜单项是否可以被选择getLable()/setLable()得到/设置菜单选项的名称addActionListenter(ActionListentere)为菜单项设置监视器,监视器接受点击某个菜单项的动作事件.JMenuItem类38JMenuItem类importjava.awt.Dimension;importjavax.swing.JFrame;importjavax.swing.JPanel;importjavax.swing.JMenuBar;importjavax.swing.JMenu;importjavax.swing.JMenuItem;publicclassMenuFrameextendsJFrame{JPanelcontentPane;JMenuBarmnuNotepad=newJMenuBar();JMenumnuFile=newJMenu();JMenumnuEdit=newJMenu();JMenumnuFormat=newJMenu();JMenuItemmnuNew=newJMenuItem();JMenuItemmnuOpen=newJMenuItem();JMenuItemmnuSave=newJMenuItem();JMenuItemmnuSaveAs=newJMenuItem();JMenuItemmnuExit=newJMenuItem();JMenumnuHelp=newJMenu();publicMenuFrame(){try{setDefaultCloseOperation(EXIT_ON_CLOSE);jbInit();}catch(Exceptionexception){exception.printStackTrace();}}privatevoidjbInit()throwsException{contentPane=(JPanel)getContentPane();contentPane.setLayout(null);this.setJMenuBar(mnuNotepad);setSize(newDimension(400,300));setTitle(“菜单");mnuFile.setText(“文件");mnuEdit.setText(“编辑");mnuFormat.setText(“格式");mnuNew.setText(“新建");mnuOpen.setText(“打开...");mnuSave.setText(“保存");mnuSaveAs.setText(“另存为...");mnuExit.setText(“退出");mnuHelp.setText(“帮助");mnuNotepad.add(mnuFile);mnuNotepad.add(mnuEdit);mnuNotepad.add(mnuFormat);mnuNotepad.add(mnuHelp);mnuFile.add(mnuNew);mnuFile.add(mnuOpen);mnuFile.add(mnuSave);mnuFile.add(mnuSaveAs);mnuFile.add(mnuExit);}}39对话框Java中的对话框是一个容器,它充当父容器的子容器.对话框分为强制对话框(模式对话框)和非强制对话框Jdialog类用做对话框的基类,JOptionPane
这个类支持的功能有:布局标准对话框指定对话框的标题和文本提供图标和自定义按钮文本JOptionPane
可用于显示各种图标,如用于警告消息、问题、错误和信息等的图标“消息”对话框“错误”对话框“问题”对话框40对话框以下是一些可供JOptionPane类使用的构造方法:JOptionPane()JOptionPane(Object
message)JOptionPane(Object
message,int
messageType)JOptionPane(Object
message,int
messageType,int
optionType)JOptionPane(Object
message,int
messageType,int
optionType,Iconicon)41对话框JOptionPane
类的showXxxDialog
方法是显示模式对话框最常用的方法showXxxDialogshowMessageDialog()showOptionDialog()showXxxDialog()方法的一些重载版本42鼠标事件与键盘事件Java语言为处理鼠标事件提供两个接口:MouseListener接口和MouseM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 灯具采购合同书
- 外贸设备采购合同协议书范本
- 劳保采购合同
- 2024版二人合伙创办健身俱乐部合作协议书模板3篇
- 建筑合同-建筑合同模板
- 高铁护坡合同范例
- 货运车辆承包合同模板
- 2024年新型环保材料贴牌销售专项合同模板3篇
- 2024年全年粮食收购合同3篇
- 2024年度办公室装修设计与施工监理服务协议3篇
- 最新《工会基础知识》试题库及答案1000题【完美打印版】
- 2023年现行建筑施工规范目录
- 工程变更联系单【范本模板】
- 《网络传播学概论》(第四版)-课件
- hsk教程5上练习册
- 五年级《欧洲民间故事》知识考试题库(含答案)
- 国开电大中级财务会计(一)第一二三四次形考任务答案
- 计算机操作系统题库(答案)
- 婚育情况登记表
- 《刺激与反应》课件
- 光伏并网系统调试验收报告2016.04
评论
0/150
提交评论