




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第十讲 Java图形界面目标目标本课中,你将学习:*识别用户界面屏幕的组件*创建图形用户界面屏幕* 图形用户界面是用户与程序交互的窗口,JAVA程序一般都需要设计、建立自己的用户界面并利用它接受用户的输入,向用户显示运行结果。* 在JAVA语言中,为了方便图形用户界面的开发,设计了专门的类库来生成各种标准图形元素和处理各种事件,这个类库就是java.awt包。开始开始*用户界面的需要用户界面的需要: 3 接收用户的输入接收用户的输入 3 使应用用户友善使应用用户友善*用户界面的类型用户界面的类型: 3 字符用户界面字符用户界面 3 图形用户界面图形用户界面*设计和实现图形用户界面的工作主要有两
2、个:3 创建组成界面的各成分和元素(容器、控制组件和用户自定义成分),指定它们的属性和位置关系,根据具体需要排列,从而构成完整的物理外观。3 定义图形用户界面的事件和各界面元素对不同事件的响应,从而实现图形用户界面与用户的交互功能。Java中构成图形用户界面的各种元素和成分可以被分为三类:* 容器:用来组织其他界面成分和元素的单元,一个图形用户界面首先对应一个复杂的容器,例如一个窗口或一个对话框。* GUI组件:是图形用户界面的最小单位之一,如按纽、文本框等,使用组件通常需要如下 步骤:(a)创建某控制组件类的对象,指定大小等属性;(b)使用某种布局策略,将组件加入到容器的指定位置处;(c)将
3、该组件对象注册给事件监听者。* 用户自定义成分:利用java.awt.Graphics类提供的方法来绘制图形和文字。*GUI的组件的组件:JMenuBarJTextFieldJComboBoxJListJCheckBoxJRadioButtonJButtonJLabel JFrame*GUI的组件的组件:3 可视化控件诸如文本框、组合框称为组件3 存放这些组件的顶层窗口称为容器3 组件继承它的父容器的性质,如字体的设置等* 抽象窗口工具箱抽象窗口工具箱(AWT):3 Java 1.0版中,用它创建用户接口版中,用它创建用户接口* Java 基础类基础类(JFC):3 是是AWT的扩充,的扩充,
4、也称为也称为 Swing,是是Java基本类库的一基本类库的一部分部分* 用于图形化界面编程的的包有三个:java.awt、javax.swing 、java.awt.event,可以在同一个界面中使用swing和awt组件,但在某些情况下不能共存,所以最好只使用swing例:例:CellGo已用已用Java开发了应用。开发了应用。 如下创建了如下创建了Customer 实体的类。实体的类。识别其用户接口的控件和写出接收客户材料的代码。识别其用户接口的控件和写出接收客户材料的代码。Customer customerName : String customerCellNo : String cu
5、stomerPackage : String customerAge : int *识别接收客户材料的控件识别接收客户材料的控件:3 用来简化用户交互用来简化用户交互3 Java中中可用控件是:标号、文本框、文本域、按钮、单可用控件是:标号、文本框、文本域、按钮、单选按钮、复选按钮、列表、及组合框选按钮、复选按钮、列表、及组合框。文本框接收单行字母入口,组合框对单个项目选择显示下拉式列表,用控件接收客户材料如下:AttributeControlscustomerNameLabel, TextFieldCustomerCellNoLabel, TextFieldcustomerPackageLa
6、bel, ComboBoxcustomerAgeLabel, TextField* 识别每个控件中要显示的缺省值识别每个控件中要显示的缺省值AttributeControlValuecustomerNameLabelTextField“Customer Name: ”nonecustomerCellNoLabelTextField“Cell Number: ”nonecustomerPackageLabelComboBox“Package: ”“Executive”, “Standard”customerAgeLabelTextField“Age: ”none*识别控件的大小识别控件的大小At
7、tributeControlValuecustomerNameTextField30 CharacterscustomerCellNoTextField15 CharacterscustomerPackageComboBox DefaultcustomerAgeTextField2 Characters*识别框架窗口的标题和大小识别框架窗口的标题和大小3 将显示客户材料框架窗口的标题是将显示客户材料框架窗口的标题是“Customer Details Form”.3 此窗口的大小是此窗口的大小是 300 x 300 象素象素.*创建框架窗口创建框架窗口javax.swing 包包: javax.
8、swing 包中 JComponent类是所有图形用户界面组件的基类,即所有的swing组件都是抽象类JComponent的子类 提供了组件类,如: JLabel, JTextField, JButton, JRadioButton, JList,JCheckBox,JMenuBar,JMenuItem及 JComboBox 提供了容器类,如:JFrame,JWindow,JDialog, JPanel 及 JApplet, 其中容器JPanel、 JApplet是无边框的, JFrame,JWindow,JDialog是一组含有边框、并可以移动、放大、缩小、关闭的容器* 创建一个图形化用户界
9、面的第一步是创建代表该界面的类,然后将这个类的对象用作容器。在很多工程中,主界面要么是一个简单的窗口JWindow类,要么是一个叫做框架的窗口JFrame类,因此创建一个图形化用户界面的一种途径是把该界面类作成JFrame类或JWindow类的子类。如:public class look extends JFrame或JWindow public look( ) public static void main(String arguments) look sf=new look( ); 一般地,在这个界面类的构造方法中需要做:3 调用超类的构造方法进行一些设置(如标题设置) JFrame的两个
10、常用的构造函数: JFrame( )、JFrame(String title)3 创建组件对象并按合理布局添加到界面容器上3 设置框架窗口的大小 setSize(int , int )3 判断如果关闭窗口时的操作setDefaultCloseOperation() 在Java中,一个窗口被关闭时正常的情况是让应用程 序也退出执行,为做到这一点需调用框架的方法 setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE )3 最后显示该框架窗口 setVisible(boolean) 或者 show( )public class look extends JFr
11、ame public look( ) super(“edit window”); setSize(300,100);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) show( ); Public static void main(String arguments) look sf=new look(); Swing组件的类层次结构组件的类层次结构:3 所有组件继承大量的JComponent 类的功能,列表如下:方法方法描述描述void setBackground(Color bg) 设置组件的背景颜色设置组件的背景颜色. void setFont(
12、Font f) 设置在组件中显示文本的字体设置在组件中显示文本的字体*Swing组件的类层次结构组件的类层次结构(续续.)方法方法描述描述void setToolTipText(String t) 设置在组件中显示的工具箱文本void setVisible(boolean b) 支持组件是否将是可见的void setSize(int width, int height) 设置组件的高和宽* JFrame类类3 用构造符创建你应用的框架窗口3 包含 setVisible(), setSize (),及 getContentPane()方法3 可用带EXIT_ON_CLOSE 选项的 setDef
13、aultCloseOperation() 方法将在关闭框架窗口时退出应用JFrame swingFrame=new JFrame(Frame)swingFrame.setDefaultCloseOperation (JFrame .EXIT_ON_CLOSE); JButton buttonObj=new JButton(Button)swingFrame.getContentPane().add(buttonObj) swingFrame.setContentPane(buttonObj); swingFrame.setVisible(); swingFrame.setSize(200,20
14、0); import javax.swing.*;public class Buttons extends JFrame static JFrame frameObject; public static void main(String args) frameObject=new JFrame(“customer details”) frameObject.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); frameObject.SetVisible(true); frameObject.SetSize(300,300); * 创建组件为了在某个
15、界面中使用某个组件,你必须创建该组件类的一个对象,以组件JButton为例进行说明JButton(String ):创建带有指定文本的按钮JButton(Icon ):创建带有指定图标的按钮JButton(String , Icon ):创建带有指定文本和图标的按钮JButton play= new JButton(“播放”);JButton stop= new JButton(“停止”);* 将组件添加到容器中可以调用容器的add(Component)方法,最简单的容器是面板(JPanel)如: JButton quit= new JButton(“退出”); JPanel panel= n
16、ew JPanel( ); Panel.add(quit);* JFrame,JWindow,JDialog, JApplet 都不允许用这种方式加入组件,只有JPanel对象可以使用add(Component)方法加入组件。*通常情况下,加入组件到面板之后,在将面板加入到顶层容器的内容窗格中setContentPane(Container),使用下面的步骤将组件加入到一个容器的内容窗格中: 创建一个面板 使用它的方法add(Component)将组件加入到面板中 用面板作为参数调用方法setContentPane(面板Container);让我们看下面的两个例子: import javax.
17、swing.*;public class Buttons extends JFrame JButton abort = new JButton(Abort); JButton retry = new JButton(Retry); JButton fail = new JButton(Fail); public Buttons() super(Buttons); setSize(80, 140); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel pane = new JPanel(); pane.add(abort); pane.a
18、dd(retry); pane.add(fail); setContentPane(pane); show( );import javax.swing.*;public class mapbutton extends JFrame JButton buttons = new JButton24; public mapbutton( ) super(Icons); setSize(335, 318); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel pane = new JPanel(); ImageIcon icon = new I
19、mageIcon(3dman.gif); for (int i = 0; i 24; i+) buttonsi = new JButton(icon); pane.add(buttonsi); setContentPane(pane); show(); public static void main(String arguments) mapbutton ike = new mapbutton(); *JPanel 类类: 3 提供了加入组件到框架的更简单的方法JFrame swingFrame=new JFrame(Frame); swingFrame.setDefaultCloseOpti
20、on(JFrame.EXIT_ON_CLOSE); JButton button1=new JButton(FirstButton)JButton button2=new JButton(SecondButton) JPanel panel=new JPanel(); panel.add(button1); panel.add(button2); swingFrame.getContentPane().add(panel);*JLabel 类类:Jlabel(String):创建带有指定文本的标签Jlabel(String,int):创建带有指定文本和对齐方式的标签Jlabel(String,
21、Icon,int):创建带有指定文本、图标和对齐方式的标签例如:Jlable prompt=new Jlable(“请输入一个数”);Jlable evers=new Jlable(“请输入一个数”,SWingConstants.LEFT);If (prompt.getText()=“你好”) prompt.setText(“再见”)*JTextField 类类:3 JTextFiel( ):空的文本字段;3 JTextFiel(int):带有指定宽度的文本字段3 JTextFiel(String,int) :一个指定字 符和宽度的文本字段; 3JTextField name= new JTe
22、xtFiels(“卡号”,8)3提供 getText() 和 setText() 方法*JPasswordField 类:是JTextField类的子类,其构造方法和其父类一样,创建了密码字段后,可以调用方法setEchoChar(char)用指定的字符来隐藏输入的文本。例如:JPasswordField pass=new JPasswordField(20) Pass.setEchoChar(#);*JTextArea 类类:可以处理多行输入的可编辑文本字段3JTextArea (int , int ):一个指定行和列的文本域;3 JTextArea (String ,int ,int) :
23、一个带有指定文本、行和列的文本域 3提供 getText() 、 getSelectedText()和 setText() 方法3append( String ):可以将指定的文本加到当前文本的末尾3setLineWrap(boolean):判断文本到达边界时是否绕到下一行3setWrapStyleWord(boolean):判断如何换行, 参数为true从当前单词开始换行 参数为false从当前字符开始换行import javax.swing.*;public class Form extends JFrame JTextField username = new JTextField(15)
24、; JPasswordField password = new JPasswordField(15); JTextArea comments = new JTextArea(4, 15); public Form() super(Feedback Form); setSize(260, 160); setDefaultCloseOperation(EXIT_ON_CLOSE); JPanel pane = new JPanel(); JLabel usernameLabel = new JLabel(Username: ); JLabel passwordLabel=new JLabel(Pa
25、ssword: ); JLabel commentsLabel=new JLabel(Comments:) comments.setLineWrap(true); comments.setWrapStyleWord(true); pane.add(usernameLabel); pane.add(username); pane.add(passwordLabel); pane.add(password); pane.add(commentsLabel); pane.add(comments); setContentPane(pane); show(); public static void m
26、ain(String arguments) Form input = new Form(); JList 类:3 创建带有一组值的列表框3 setSelectionMode( int )方法用于是否允许单行或多行进行选择SINGLE_SELECTION 只能选择一项SINGLE_INTERVAL_SELECTION可连续选择多项MULTIPLE_INTERVAL_SELECTION任意次序选多项3 它提供了方法如:getSelectedValue(), getSelectedValues (), 及 setVisibleRowCount (int)3 Jlist Mylist=new JLis
27、t(Object listData) *JComboBox 类类:3只允许选择单个元素3提供 setEditable()方法3组合框的方法addItem(Object)将表项加入到表中3在组合框里用户可以在文本字段中输入文本,也可以在下拉列表中选择某项JComboBox monthBox = new JComboBox(); for (int i = 1; i 13; i+) monthBox.addItem(+i);import javax.swing.*;public class Expiration extends JFrame JComboBox monthBox = new JCom
28、boBox(); JComboBox yearBox = new JComboBox(); public Expiration() super(Expiration Date); setSize(220, 90); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel pane = new JPanel(); JLabel exp = new JLabel(Expiration Date:); pane.add(exp); for (int i = 1; i 13; i+) monthBox.addItem( + i); for (int i = 2000; i 2010; i+) yearBox.addItem( + i); pane.add(monthBox); pane.add(yearBox); setContentPane(pane); show(); public static void main(String arguments) Expiration ct = new Expiration(); *JCheckBox类和 JRadioButton类类 : 两个组件仅仅在外观上不同,两者都可以成组地放在一起,这样可以在任何时候该组里只有一个被选中*JCheckBox(String) 带有指定文本
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中级经济师考试参考试题及答案
- 中级经济师考试评估方式的实施与试题及答案
- 飞行前检查试题及答案解读
- 2025年金融衍生品市场创新业务模式与风险控制策略研究报告
- 月子中心护理服务总结
- 高效备考行政管理考试:试题及答案
- 水利水电工程复习中需注意的事项试题及答案
- 2025年快时尚在时尚零售行业变革中的产品创新趋势报告
- 护理程序病例分析
- 逐步深入的市政工程试题及答案
- 国标美标德标日表法兰尺寸标准
- 测绘生产困难类别细则及工日定额
- 国民经济行业分类2022年
- 兽医药理学 第15章 特效解毒药
- 空乘人员职业形象设计与化妆(169张课件)
- 会计工作年限证明个人承诺书
- 物业公共秩序管理课件
- 浅谈摩托艇的安全管理
- 女性功能治疗方案ppt课件
- 公路工程计量与计价考试B本科
- 医用耗材分类目录 (低值 ╱ 高值)
评论
0/150
提交评论