(推荐)java图形用户界面.ppt

上传人:rrsccc 文档编号:10253454 上传时间:2021-05-03 格式:PPT 页数:45 大小:311KB
返回 下载 相关 举报
(推荐)java图形用户界面.ppt_第1页
第1页 / 共45页
(推荐)java图形用户界面.ppt_第2页
第2页 / 共45页
(推荐)java图形用户界面.ppt_第3页
第3页 / 共45页
(推荐)java图形用户界面.ppt_第4页
第4页 / 共45页
(推荐)java图形用户界面.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《(推荐)java图形用户界面.ppt》由会员分享,可在线阅读,更多相关《(推荐)java图形用户界面.ppt(45页珍藏版)》请在三一文库上搜索。

1、第十讲 Java图形界面,目标 本课中,你将学习: 识别用户界面屏幕的组件 创建图形用户界面屏幕,图形用户界面是用户与程序交互的窗口,JAVA程序一般都需要设计、建立自己的用户界面并利用它接受用户的输入,向用户显示运行结果。 在JAVA语言中,为了方便图形用户界面的开发,设计了专门的类库来生成各种标准图形元素和处理各种事件,这个类库就是java.awt包。,开始,用户界面的需要: 接收用户的输入 使应用用户友善 用户界面的类型: 字符用户界面 图形用户界面,设计和实现图形用户界面的工作主要有两个: 创建组成界面的各成分和元素(容器、控制组件和用户自定义成分),指定它们的属性和位置关系,根据具体

2、需要排列,从而构成完整的物理外观。 定义图形用户界面的事件和各界面元素对不同事件的响应,从而实现图形用户界面与用户的交互功能。,Java中构成图形用户界面的各种元素和成分可以被分为三类: 容器:用来组织其他界面成分和元素的单元,一个图形用户界面首先对应一个复杂的容器,例如一个窗口或一个对话框。 GUI组件:是图形用户界面的最小单位之一,如按纽、文本框等,使用组件通常需要如下 步骤:(a)创建某控制组件类的对象,指定大小等属性;(b)使用某种布局策略,将组件加入到容器的指定位置处;(c)将该组件对象注册给事件监听者。 用户自定义成分:利用java.awt.Graphics类提供的方法来绘制图形和

3、文字。,GUI的组件:,JMenuBar,JTextField,JComboBox,JList,JCheckBox,JRadioButton,JButton,JLabel,JFrame,GUI的组件: 可视化控件诸如文本框、组合框称为组件 存放这些组件的顶层窗口称为容器 组件继承它的父容器的性质,如字体的设置等,抽象窗口工具箱(AWT): Java 1.0版中,用它创建用户接口 Java 基础类(JFC): 是AWT的扩充,也称为 Swing,是Java基本类库的一部分 用于图形化界面编程的的包有三个:java.awt、javax.swing 、java.awt.event,可以在同一个界面中

4、使用swing和awt组件,但在某些情况下不能共存,所以最好只使用swing,例:CellGo已用Java开发了应用。 如下创建了Customer 实体的类。识别其用户接口的控件和写出接收客户材料的代码。,识别接收客户材料的控件: 用来简化用户交互 Java中可用控件是:标号、文本框、文本域、按钮、单选按钮、复选按钮、列表、及组合框。,文本框接收单行字母入口,组合框对单个项目选择显示下拉式列表,用控件接收客户材料如下:,识别每个控件中要显示的缺省值,识别控件的大小,识别框架窗口的标题和大小 将显示客户材料框架窗口的标题是“Customer Details Form”. 此窗口的大小是 300

5、x 300 象素.,创建框架窗口javax.swing 包: javax.swing 包中 JComponent类是所有图形用户界面组件的基类,即所有的swing组件都是抽象类JComponent的子类 提供了组件类,如: JLabel, JTextField, JButton, JRadioButton, JList,JCheckBox,JMenuBar,JMenuItem及 JComboBox 提供了容器类,如:JFrame,JWindow,JDialog, JPanel 及 JApplet, 其中容器JPanel、 JApplet是无边框的, JFrame,JWindow,JDialog

6、是一组含有边框、并可以移动、放大、缩小、关闭的容器,创建一个图形化用户界面的第一步是创建代表该界面的类,然后将这个类的对象用作容器。在很多工程中,主界面要么是一个简单的窗口JWindow类,要么是一个叫做框架的窗口JFrame类,因此创建一个图形化用户界面的一种途径是把该界面类作成JFrame类或JWindow类的子类。如: public class look extends JFrame或JWindow public look( ) public static void main(String arguments) look sf=new look( ); ,一般地,在这个界面类的构造方法中

7、需要做: 调用超类的构造方法进行一些设置(如标题设置) JFrame的两个常用的构造函数: JFrame( )、JFrame(String title) 创建组件对象并按合理布局添加到界面容器上 设置框架窗口的大小 setSize(int , int ) 判断如果关闭窗口时的操作setDefaultCloseOperation() 在Java中,一个窗口被关闭时正常的情况是让应用程 序也退出执行,为做到这一点需调用框架的方法 setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ) 最后显示该框架窗口 setVisible(boolean) 或者 sho

8、w( ),public class look extends JFrame 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组件的类层次结构: 所有组件继承大量的JComponent 类的功能,列表如下:,Swing组件的类层次结构(续.),JFrame类 用构造符创建你应用的框架窗口 包

9、含 setVisible(), setSize (),及 getContentPane()方法 可用带EXIT_ON_CLOSE 选项的 setDefaultCloseOperation() 方法将在关闭框架窗口时退出应用,JFrame swingFrame=new JFrame(Frame) swingFrame.setDefaultCloseOperation (JFrame .EXIT_ON_CLOSE); JButton buttonObj=new JButton(Button) swingFrame.getContentPane().add(buttonObj) swingFrame

10、.setContentPane(buttonObj); swingFrame.setVisible(); swingFrame.setSize(200,200);,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_

11、CLOSE); frameObject.SetVisible(true); frameObject.SetSize(300,300); ,创建组件 为了在某个界面中使用某个组件,你必须创建该组件类的一个对象,以组件JButton为例进行说明 JButton(String ):创建带有指定文本的按钮 JButton(Icon ):创建带有指定图标的按钮 JButton(String , Icon ):创建带有指定文本和图标的按钮 JButton play= new JButton(“播放”); JButton stop= new JButton(“停止”); 将组件添加到容器中 可以调用容器的a

12、dd(Component)方法,最简单的容器是面板(JPanel)如: JButton quit= new JButton(“退出”); JPanel panel= new JPanel( ); Panel.add(quit);,JFrame,JWindow,JDialog, JApplet 都不允许用这种方式加入组件,只有JPanel对象可以使用add(Component)方法加入组件。 通常情况下,加入组件到面板之后,在将面板加入到顶层容器的内容窗格中setContentPane(Container),使用下面的步骤将组件加入到一个容器的内容窗格中: 创建一个面板 使用它的方法add(Co

13、mponent)将组件加入到面板中 用面板作为参数调用方法setContentPane(面板Container); 让我们看下面的两个例子:,import javax.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); setDefaultClos

14、eOperation(JFrame.EXIT_ON_CLOSE); JPanel pane = new JPanel(); pane.add(abort); pane.add(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); setDefault

15、CloseOperation(JFrame.EXIT_ON_CLOSE); JPanel pane = new JPanel(); ImageIcon icon = new ImageIcon(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 类:

16、 提供了加入组件到框架的更简单的方法 JFrame swingFrame=new JFrame(Frame); swingFrame.setDefaultCloseOption(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)

17、;,JLabel 类: Jlabel(String):创建带有指定文本的标签 Jlabel(String,int):创建带有指定文本和对齐方式的标签 Jlabel(String,Icon,int):创建带有指定文本、图标和对齐方式的标签 例如: Jlable prompt=new Jlable(“请输入一个数”); Jlable evers=new Jlable(“请输入一个数”,SWingConstants.LEFT); If (prompt.getText()=“你好”) prompt.setText(“再见”),JTextField 类: JTextFiel( ):空的文本字段; JTe

18、xtFiel(int):带有指定宽度的文本字段 JTextFiel(String,int) :一个指定字 符和宽度的文本字段; JTextField name= new JTextFiels(“卡号”,8) 提供 getText() 和 setText() 方法,JPasswordField 类: 是JTextField类的子类,其构造方法和其父类一样,创建了密码字段后,可以调用方法setEchoChar(char)用指定的字符来隐藏输入的文本。 例如: JPasswordField pass=new JPasswordField(20) Pass.setEchoChar(#);,JTextA

19、rea 类:可以处理多行输入的可编辑文本字段 JTextArea (int , int ):一个指定行和列的文本域; JTextArea (String ,int ,int) :一个带有指定文本、行和列的文本域 提供 getText() 、 getSelectedText()和 setText() 方法 append( String ):可以将指定的文本加到当前文本的末尾 setLineWrap(boolean):判断文本到达边界时是否绕到下一行 setWrapStyleWord(boolean):判断如何换行, 参数为true从当前单词开始换行 参数为false从当前字符开始换行,impor

20、t javax.swing.*; public class Form extends JFrame JTextField username = new JTextField(15); 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 J

21、Panel(); JLabel usernameLabel = new JLabel(Username: ); JLabel passwordLabel=new JLabel(Password: ); JLabel commentsLabel=new JLabel(Comments:),comments.setLineWrap(true); comments.setWrapStyleWord(true); pane.add(usernameLabel); pane.add(username); pane.add(passwordLabel); pane.add(password); pane.

22、add(commentsLabel); pane.add(comments); setContentPane(pane); show(); public static void main(String arguments) Form input = new Form(); ,JList 类: 创建带有一组值的列表框 setSelectionMode( int )方法用于是否允许单行或多行进行选择 SINGLE_SELECTION 只能选择一项 SINGLE_INTERVAL_SELECTION可连续选择多项 MULTIPLE_INTERVAL_SELECTION任意次序选多项 它提供了方法如:

23、getSelectedValue(), getSelectedValues (), 及 setVisibleRowCount (int) Jlist Mylist=new JList(ObjectlistData),JComboBox 类: 只允许选择单个元素 提供 setEditable()方法 组合框的方法addItem(Object)将表项加入到表中 在组合框里用户可以在文本字段中输入文本,也可以在下拉列表中选择某项 JComboBox monthBox = new JComboBox(); for (int i = 1; i 13; i+) monthBox.addItem(+i);,

24、import javax.swing.*; public class Expiration extends JFrame JComboBox monthBox = new JComboBox(); 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(Ex

25、piration 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类和 JRadio

26、Button类 : 两个组件仅仅在外观上不同,两者都可以成组地放在一起,这样可以在任何时候该组里只有一个被选中 JCheckBox(String) 带有指定文本标签的复选框 JCheckBox(String,boolean): 带有指定文本标签的复选框,当第二个参数为true时,它被选中。 JCheckBox(Icon):带有指定图标标签的复选框 JRadioButton具有相同的参数和功能的构造函数,为了使它们不相容,必须将相关的组件放到一个组中,不过你需要创建一个ButtonGroup类的对象,如: ButtonGroup choice=new ButtonGroup(); JRadioB

27、utton r1 = new JRadioButton(“newyork”,true); JRadioButton r2 = new JRadioButton(“London”,false); Choice.add(r1); Choice.add(r2); 让我们看下面的例子:,import javax.swing.*; public class ChooseTeam extends JFrame JRadioButton teams = new JRadioButton4; public ChooseTeam() super(Choose Team); setSize(140, 190);

28、setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); teams0 = new JRadioButton(Colorado); teams1 = new JRadioButton(Dallas, true); teams2 = new JRadioButton(New Jersey); teams3 = new JRadioButton(Philadelphia);,JPanel pane = new JPanel(); ButtonGroup group = new ButtonGroup(); for (int i = 0; i teams.length; i+) group.add(teamsi); pane.add(teamsi); setContentPane(pane); show(); public static void main(String arguments) ChooseTeam ct = new ChooseTeam(); ,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1