推荐java图形用户界面

上传人:壹****1 文档编号:584808424 上传时间:2024-09-01 格式:PPT 页数:45 大小:311KB
返回 下载 相关 举报
推荐java图形用户界面_第1页
第1页 / 共45页
推荐java图形用户界面_第2页
第2页 / 共45页
推荐java图形用户界面_第3页
第3页 / 共45页
推荐java图形用户界面_第4页
第4页 / 共45页
推荐java图形用户界面_第5页
第5页 / 共45页
点击查看更多>>
资源描述

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

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

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

3、给事件监听者。* 用户自定义成分:利用java.awt.Graphics类提供的方法来绘制图形和文字。*GUI的组件的组件:JMenuBarJTextFieldJComboBoxJListJCheckBoxJRadioButtonJButtonJLabel JFrame*GUI的组件的组件:3可视化控件诸如文本框、组合框称为组件3存放这些组件的顶层窗口称为容器3组件继承它的父容器的性质,如字体的设置等* 抽象窗口工具箱抽象窗口工具箱(AWT):3Java 1.0版中,用它创建用户接口版中,用它创建用户接口* Java 基础类基础类(JFC):3是是AWT的扩充,的扩充,也称为也称为 Swing

4、,是是Java基本类库的一基本类库的一部分部分*用于图形化界面编程的的包有三个:java.awt、javax.swing、java.awt.event,可以在同一个界面中使用swing和awt组件,但在某些情况下不能共存,所以最好只使用swing例:例:CellGo已用已用Java开发了应用。开发了应用。 如下创建了如下创建了Customer 实体的类。实体的类。识别其用户接口的控件和写出接收客户材料的代码。识别其用户接口的控件和写出接收客户材料的代码。CustomercustomerName : String customerCellNo : String customerPackage :

5、 String customerAge : int *识别接收客户材料的控件识别接收客户材料的控件:3用来简化用户交互用来简化用户交互3Java中中可用控件是:标号、文本框、文本域、按钮、单可用控件是:标号、文本框、文本域、按钮、单选按钮、复选按钮、列表、及组合框选按钮、复选按钮、列表、及组合框。文本框接收单行字母入口,组合框对单个项目选择显示下拉式列表,用控件接收客户材料如下:AttributeControlscustomerNameLabel,TextFieldCustomerCellNoLabel,TextFieldcustomerPackageLabel,ComboBoxcustome

6、rAgeLabel,TextField*识别每个控件中要显示的缺省值识别每个控件中要显示的缺省值AttributeControlValuecustomerNameLabelTextField“CustomerName:”nonecustomerCellNoLabelTextField“CellNumber:”nonecustomerPackageLabelComboBox“Package:”“Executive”,“Standard”customerAgeLabelTextField“Age:”none*识别控件的大小识别控件的大小AttributeControlValuecustomerNa

7、meTextField30CharacterscustomerCellNoTextField15CharacterscustomerPackageComboBoxDefaultcustomerAgeTextField2Characters*识别框架窗口的标题和大小识别框架窗口的标题和大小3将显示客户材料框架窗口的标题是将显示客户材料框架窗口的标题是“Customer Details Form”.3此窗口的大小是此窗口的大小是 300 x 300 象素象素.*创建框架窗口创建框架窗口javax.swing 包包:javax.swing 包中 JComponent类是所有图形用户界面组件的基类,即

8、所有的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的两个常用的构造函数: JFrame( )、JFrame(String title

10、)3 创建组件对象并按合理布局添加到界面容器上3 设置框架窗口的大小 setSize(int , int )3 判断如果关闭窗口时的操作setDefaultCloseOperation() 在Java中,一个窗口被关闭时正常的情况是让应用程 序也退出执行,为做到这一点需调用框架的方法 setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE )3 最后显示该框架窗口 setVisible(boolean) 或者 show( )public class look extends JFrame public look( ) super(“edit window”

11、); 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(Font f) 设置在组件中显示文本的字体设置在组件中显示文本的字体*Swing

12、组件的类层次结构组件的类层次结构(续续.)方法方法描述描述void setToolTipText(String t) 设置在组件中显示的工具箱文本void setVisible(boolean b)支持组件是否将是可见的void setSize(int width, int height) 设置组件的高和宽*JFrame类类3用构造符创建你应用的框架窗口3包含 setVisible(), setSize (),及 getContentPane()方法3可用带EXIT_ON_CLOSE 选项的 setDefaultCloseOperation() 方法将在关闭框架窗口时退出应用 JFrame s

13、wingFrame=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,200); import javax.swing.*;public class Button

14、s 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); * 创建组件为了在某个界面中使用某个组件,你必须创建该组件类的一个对象,以组件JButton为例进行说明JBu

15、tton(String ):创建带有指定文本的按钮JButton(Icon ):创建带有指定图标的按钮JButton(String , Icon ):创建带有指定文本和图标的按钮JButton play= new JButton(“播放”);JButton stop= new JButton(“停止”);* 将组件添加到容器中可以调用容器的add(Component)方法,最简单的容器是面板(JPanel)如: JButton quit= new JButton(“退出”); JPanel panel= new JPanel( ); Panel.add(quit);* JFrame,JWind

16、ow,JDialog,JApplet都不允许用这种方式加入组件,只有JPanel对象可以使用add(Component)方法加入组件。*通常情况下,加入组件到面板之后,在将面板加入到顶层容器的内容窗格中setContentPane(Container),使用下面的步骤将组件加入到一个容器的内容窗格中:创建一个面板使用它的方法add(Component)将组件加入到面板中用面板作为参数调用方法setContentPane(面板Container);让我们看下面的两个例子: import javax.swing.*;public class Buttons extends JFrame JButt

17、on 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.add(retry); pane.add(fail); setContentPane(pane);

18、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 ImageIcon(3dman.gif); for (int i = 0; i 24; i+) bu

19、ttonsi = 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.setDefaultCloseOption(JFrame.EXIT_ON_CLOSE); JButton button1=new JButt

20、on(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,Icon,int):创建带有指定文本、图标和对齐方式的标签例如:Jlable prompt=new J

21、lable(“请输入一个数”);Jlable evers=new Jlable(“请输入一个数”,SWingConstants.LEFT);If (prompt.getText()=“你好”) prompt.setText(“再见”)*JTextField 类类:3JTextFiel( ):空的文本字段;3JTextFiel(int):带有指定宽度的文本字段3 JTextFiel(String,int) :一个指定字 符和宽度的文本字段; 3JTextField name= new JTextFiels(“卡号”,8)3提供getText()和setText()方法*JPasswordFiel

22、d 类:是JTextField类的子类,其构造方法和其父类一样,创建了密码字段后,可以调用方法setEchoChar(char)用指定的字符来隐藏输入的文本。例如:JPasswordField pass=new JPasswordField(20) Pass.setEchoChar(#);*JTextArea 类类:可以处理多行输入的可编辑文本字段3JTextArea (int , int ):一个指定行和列的文本域;3JTextArea (String ,int ,int) :一个带有指定文本、行和列的文本域3提供getText()、getSelectedText()和setText()方法

23、3append( String ):可以将指定的文本加到当前文本的末尾3setLineWrap(boolean):判断文本到达边界时是否绕到下一行3setWrapStyleWord(boolean):判断如何换行, 参数为true从当前单词开始换行 参数为false从当前字符开始换行import javax.swing.*;public class Form extends JFrame JTextField username = new JTextField(15); JPasswordField password = new JPasswordField(15); JTextArea co

24、mments = 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(Password: ); JLabel commentsLabel=new JLabel(Comments:) comments.s

25、etLineWrap(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 main(String arguments) Form input = new Form(); JList 类:3创建带有一组值的

26、列表框3setSelectionMode(int)方法用于是否允许单行或多行进行选择SINGLE_SELECTION只能选择一项SINGLE_INTERVAL_SELECTION可连续选择多项MULTIPLE_INTERVAL_SELECTION任意次序选多项3它提供了方法如:getSelectedValue(),getSelectedValues(),及setVisibleRowCount(int)3JlistMylist=newJList(ObjectlistData)*JComboBox 类类:3只允许选择单个元素3提供setEditable()方法3组合框的方法addItem(Obje

27、ct)将表项加入到表中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 JComboBox(); JComboBox yearBox = new JComboBox(); public Expiration() super(Expiratio

28、n 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(yearBo

29、x); setContentPane(pane); show(); public static void main(String arguments) Expiration ct = new Expiration(); *JCheckBox类和 JRadioButton类类 : 两个组件仅仅在外观上不同,两者都可以成组地放在一起,这样可以在任何时候该组里只有一个被选中*JCheckBox(String) 带有指定文本标签的复选框*JCheckBox(String,boolean): 带有指定文本标签的复选框,当第二个参数为true时,它被选中。*JCheckBox(Icon):带有指定图标标签

30、的复选框 JRadioButton具有相同的参数和功能的构造函数*为了使它们不相容,必须将相关的组件放到一个组中,不过你需要创建一个ButtonGroup类的对象,如:*ButtonGroup choice=new ButtonGroup();JRadioButton r1 = new JRadioButton(“newyork”,true);JRadioButton r2 = new JRadioButton(“London”,false);Choice.add(r1);Choice.add(r2);让我们看下面的例子:import javax.swing.*;public class Ch

31、ooseTeam extends JFrame JRadioButton teams = new JRadioButton4; public ChooseTeam() super(Choose Team); setSize(140, 190); 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备13022795号 | 川公网安备 51140202000112号