




已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,第七讲图形用户界面(GUI)设计(3),能力目标,能够用Java语言进行友好的界面设计能够利用事件处理机制实现用户的交互进一步提高软件的编程与调试能力知识的综合运用能力和创新能力,主要内容,Swing包中常用组件的使用,重点难点,Swing组件的使用方法表格和菜单的使用,Swing组件顶层容器,JApplet,JDialog,JFrame,Swing组件通用容器,JPanel,JScrollPane,JSplitPane,JToolBar,JTabbedPane,Swing组件基本控制,JCheckBox,JRadioButton,JButton,JList,JMenuBar,JMenu,JMenuItem,JSlider,JTextField,JComboBox,Swing组件信息显示,JLabel,JProgressBar,JToolTip,Swing组件可编辑格式化信息显示,JColorChooser,JTable,JFileChooser,JTextArea,JTree,编写一个世界名画欣赏程序。界面如图所示:所需要的知识点常用组件和容器的使用方法及功能AWT事件处理模型,本章案例,Swing常用的组件标签,JLabel提供可带图形的标签,Swing常用的组件标签,常用的构造方法有:,/icon表示使用的图标JLabel(Iconicon);/text表示使用的字符串;icon表示使用的图标;/align表示水平对齐方式,其值可以为:LEFT、RIGHT、CENTER。JLabel(Stringtext,Iconicon,intalign);,按钮,按钮是一个常用组件,按钮可以带标签或图像。常用的构造方法有:,JButton(Iconicon)/按钮上显示图标JButton(Stringtext)/按钮上显示字符JButton(Stringtext,Iconicon)/按钮上既显示图标又显示字符,按钮示例,建立一个Swing风格的窗口,并在其中添加一个按钮,程序中保存一个计数器以计算按钮被点击的次数,并在每次点击之后用一个Label显示。,按钮示例,程序的运行结果如下:,Swing常用的组件文本域,Java提供的文本组件:用于单行文本输入的文本域(JTextField)和用于多行输入的文本区(JTextArea)。将文本域的数字字符串转换成整数x=Integer.parseInt(text1.getText().trim();重新设置文本域的内容resultText.setText(s);,获取两个文本域的输入并求和,然后显示在第三个文本域中。运行结果如下:,文本域示例,特殊的文本域,在密码域中输入时,用户的输入并不会真正显示出来,而是显示回显符,如“*”,以防止被他人看见用户输入的密码。,密码域JPasswordField,当用户输入密码后,按下“登录”按钮,然后我们将密码输入是否正确的结果显示在文本域中。运行结果如下:,密码域示例,利用文本区用户可以输入多行文本,多行文本之间的换行可以采用三种方式:手动换行自动换行:通过设置换行属性来避免手动换行。增加滚动条:通过把文本区插入到一个滚动窗格中来实现。这也是给其他组件添加滚动条的方法。,文本区组件JTextArea,textArea.setLineWrap(true);,JScrollPanescrollPane=newJScrollPane(textArea);,文本区的三种显示方式。运行结果如下:,文本区示例,Swing常用的组件复选框,复选框提供简单的“on/off”开关,旁边显示文本标签。,Swing常用的组件复选框,常用的构造方法有:,JCheckBox()JCheckBox(Iconicon)JCheckBox(Iconicon,booleanselected)JCheckBox(Stringtext)JCheckBox(Stringtext,booleanselected)JCheckBox(Stringtext,Iconicon)JCheckBox(Stringtext,Iconicon,booleanselected),Swing常用的组件复选框,JCheckBox类的选择事件是ItemEvent,可实现ItemListener监听器接口的itemStateChanged()方法来处理事件,用addItemListener()方法注册。,复选框(JCheckBox)示例,选择粗体、斜体复选框按钮,改变文本框中显示文字的字形。,复选框(JCheckBox)示例,程序运行结果如下图所示:,Swing常用的组件单选框,单选框JRadioButton与AWT中的复选框组功能类似。常用的构造方法有:,JRadioButton()JRadioButton(Iconicon)JRadioButton(Icon,booleanselected)JRadioButton(Stringtext)JRadioButton(Stringtext,booleanselected)JRadioButton(Stringtext,Iconicon)JRadioButton(Stringtext,Iconicon,booleanselected),单选框(JRadioButton)示例,示例代码,要保证三个JRadioButton的互斥性应该把这三个控件放到同一个ButtonGroup中,Swing常用的组件选择框,JComboBox每次只能选择其中的一项,但是可编辑每项的内容,而且每项的内容可以是任意类,而不再局限于String。,选择框(JComboBox),常用的构造方法有:,/此构造函数使用缺省数据模型创建JComboBoxpublicJComboBox()/包含指定数组元素的组合框publicJComboBox(Objectitems),选择框(JComboBox),示例代码,常用的事件处理方式,案例的解决方案,程序代码见ShowPics.java。运行结果如下:,Swing常用的组件菜单,JMenuItem类型有三种:JMenuItem,JCheckBoxMenuItem,JRadioButtonMenuItem,JMenuBar,JMmenu,JMenuItem,importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;classMyframeextendsJFrameJMenuBarb;JMenub1;JMenuItemb11,b12;JPanelp;,publicvoiddisp()setTitle(菜单演示);b=newJMenuBar();setJMenuBar(b);b1=newJMenu3;b10=newJMenu(文件);b11=newJMenu(编辑);b12=newJMenu(查找);b.add(b10);b.add(b11);b.add(b12);b11=newJMenuItem2;b110=newJMenuItem(新建);b111=newJMenuItem(打开);b10.add(b110);b10.add(b111);,b12=newJMenuItem4;b120=newJMenuItem(剪切);b121=newJMenuItem(拷贝);b122=newJMenuItem(复制);b123=newJMenuItem(粘贴);b11.add(b120);b11.add(b121);b11.add(b122);b11.add(b123);p=newJPanel();add(p);setSize(300,200);setVisible(true);publicstaticvoidmain(Stringarg)Myframet=newMyframe();t.disp();,Swing常用的组件表格,表格是Swing新增加的组件,主要功能是把数据以二维表格的形式显示出来。使用表格最好先生成一个自定义的MyTableModel类型的对象来表示数据,这个类是从AbstractTableModel类中继承来的,其中有几个方法一定要重写,例如getColumnCount(),getRowCount(),getColumnName(),getValueAt()。因为JTable会从这个对象中自动获取表格显示所必需的数据。JTable类生成的对象以该TableModel为参数,并负责将TableModel对象中的数据以表格的形式显示出来。,表格(JTable),JTable类常用的方法有:getModel()/获得表格的数据来源对象JTable(TableModeldm)/dm对象中包含了表格要显示的数据,下列两个构造方法,第一个参数是数据,第二个参数是表格第一行中显示的内容。JTable(objectrowData,objectcolumnNams);JTable(VectorrowData,VectorcolumnNams);,表格(JTable),表格(JTable)示例1,示例代码请参照TableDemo.java,定义两个类:MyTableModel-提供表格的数据来源TableDemo-主类,提供图形界面显示表格,要继承这个抽象类,必须实现的四个方法,用TableModel创建JTable,在JTable中添加滚动条面板,将面板加入窗口,TableDemo类的构造方法,表格(JTable)可以选中列和行示例2,示例代码请参照SimpleTableSelectionDemo.java,设置选中模式,添加行选择事件,Swing常用的组件对话框,对话框分为模式对话框和无模式对话框模式对话框必须在用户处理完后才允许用户与主窗口继续进行交互。无模式对话框允许用户同时在对话框和程序剩余部分中输入信息。,Swing常用的组件对话框,在Swing中,提供了四种简单的对话框:showMessageDialog:显示一条消息等待用户点击OKshowConfirmDialog:显示一条消息并等待确认showOptionDialog:显示一条消息并等待用户在一组自定义选项中的选择showInputDialog:显示一条消息并等待用户的输入,以showConfirmDialog为例:,对话框的使用,JOptionPane.showConfirmDialog(DialogFrame.this,/父窗口“Areyousure?”,“Logout”,/消息以及对话框标题JOptionPane.OK_CANCEL_OPTION,/底部按钮类型JOptionPane.WARNING_MESSAGE);/消息类型,以showConfirmDialog为例:,对话框的使用,底部按钮的类型和对话框有密切的关系对于showMessageDialog和showInputDialog对话框来说,只能有一组标准按钮,分别是OK和OK/CANCEL。对于showConfirmDialog,按钮可以包括四种:DEFAULT_OPTION,YES_NO_OPTION,YES_NO_CANCEL_OPTION,OK_CANCEL_OPTION。,在登陆界面中,当单击确定按钮,如果用户名、密码不正确,将弹出对话框提示错误,同时原先的框架窗口将不能被激活,必须选择对话框中的一个选项才能够退出对话框。示例代码请参照DialogExample.java。,对话框的使用举例,对话框的使用举例,运行结果如下:,模式对话框,非模式对话框,在某些程序中,需要调整线性的值,这时就需要滚动条。滚动条提供了易于操作的值的范围或区的范围。javax.swing.JSlider类提供了对滚动条的支持,它的父类是javax.swing.JComponent类。,Swing常用的组件滚动条,滚动条,JSlider类的构造方法:JSlider()创建范围为0至100,初值为50的水平滚动条。JSlider(intorientation)创建范围为0至100,初值为50的水平或垂直滚动条。表示方向的值可为常量JSlider.HORIZONTAL和JSlider.VERTICAL,分别表示水平和垂直方向。JSlider(intmin,intmax)创建范围为min至max,初值为min和max平均值的水平滚动条。JSlider(intmin,intmax,intvalue)创建范围为min至max,初值为value的水平滚动条。JSlider(intorientation,intmin,intmax,intvalue)创建范围为min至max,初值为value的水平或垂直滚动条。,对创建的JSlider对象可显示数据刻度和数据值,也可设置边界等。与其他接口组件一样,滚动条产生一个可以控制的事件ChangeEvent。示例代码请参照JSliderDemo.java,滚动条,程序运行结果如下图所示。,滚动条,绘图程序设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年秋新北师大版数学一年级上册教学课件 第四单元 10以内数加与减 第12课时 做个减法表
- 跨境电子商务双语教程 习题和答案Chapter 7
- 水课件模板教学课件
- 输电线路线缆接头技术方案
- 建筑工程混凝土浇筑施工方案
- 智算中心实时数据流处理与分析
- 失智老年照护上海城建职业82课件
- 糖尿病病人的健康指导社区护理学86课件
- 隧道检测与维护技术方案
- 水的篆书课件模板
- 建筑工地驻场人员管理办法及流程
- 2025年全国工会系统经审业务技能大赛知识总题库(1800题)-中部分
- 心脏骤停的急救及处理
- 红十字急救包扎技术培训课件
- 中医辨证施护课件
- 狂犬处置门诊管理制度
- T/CAQI 18-2016婴幼儿室内空气质量分级
- 纳米复合高分子膜材料企业制定与实施新质生产力项目商业计划书
- 能效管理合同协议书模板
- 禁毒社工考试试题及答案
- 2025既有办公建筑体检评价标准
评论
0/150
提交评论