Java图形界面设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Java程序设计第十二章图形用户界面吴冬芹yzwudongqin@aliyun.com金陵学院信息科学与工程学院22主要内容一、图形用户界面二、图形用户界面工具包(Swing)三、创建组件四、布局管理器3图形用户界面图形用户界面(GraphicsUserInterface,GUI)用图形的方式,借助菜单、按钮等标准界面元素和鼠标操作,帮助用户方便地向计算机系统发出指令、启动操作,并将系统运行的结果同样以图形方式显示给用户的技术。Java的GUI程序设计是Java程序设计的基础。Java提供的两个处理图形用户界面的类库Java.awt包和javax.swing包AbstractWindowToolkit抽象窗口工具集awt的扩展,根据给定环境调整外观和感觉。4图形用户界面1996年,Sun公司和Netsacpe公司在一个称为Swing的项目中合作完善了Netsacpe公司原来开发的一套GUI库,也就是现在所谓的Swing组件。JFC(Java基础类库,JavaFoundationClass)是在1997年的JavaOne开发者大会上首次提出的,是指用于构建GUI的一组API。实际上,Swing只是JFC的一部分,其他的还有二维图形(Java2D)API以及拖放(DragandDrop)API等。5图形用户界面5java.awt包中包含了一个完整的类集以支持GUI程序的设计,其中的类及相互关系可以用下图来描述事件类字体类GraphicsComponent颜色类布局管理类java.lang.ObjectCheckboxContainerButton…WindowPanelAppletDialogFrameList图象类菜单类ScrollpaneAWT与Swing6图形用户界面Swing工具包作为AWT的扩展,并以AWT为基础Swing跨平台的灵活性,可以根据给定环境而调整他们的外观和感觉。重型组件AWT组件通常称为重型组件,因为它在运行时需要一个与平台相关的本地组件为之服务。轻型组件Swing组件是纯Java编写的,不直接使用本地组件,所以通常称为轻型组件。Swing组件类的名字开头都有前缀”J”77AWT与Swing顶层窗口类之间的关系javax.swingJFramejava.langObjectjava.awtComponentContainerFrameDialogwindowPaneljava.appletAppletJDialogJComponentJApplet8图形用户界面8Swing组件javax.swingAbstractButtonjava.langObjectjava.awtComponentContainerJListJComponentJOptionPaneJPopupMenuJTextComponentJMenuBarJScrollPaneJLabelJPanelJToggleButtonJButtonJMenuItemJMenuJRadioButtonJCheckBoxJTextAreaJTextFieldJPasswordField99主要内容一、图形用户界面二、图形用户界面工具包(Swing)三、创建组件四、布局管理器10SwingJava图形用户界面的基本元素主要由图形用户界面工具包Swing提供。Java图形用户界面的基本元素包括:用户界面组件(组件类)、事件处理模块(事件类)、图形和图像工具(图形类、图像类)、布局管理器(布局类)等。它们主要在javax.swing包中。java组件类的继承关系见教材图12.1111、Swing组件分类构成图形用户界面的类可以分为三组:(1)容器类(containerclass),包含其他组件的类顶层容器,能独立存在,是可以独立的窗口,如JFrame,JApplet,JDialog等顶层容器大都含有边框并且可以移动、放大、缩小等非顶层容器,不能独立存在不是独立的窗口,它们必须位于窗口之内,非顶层容器包括JPanel及JScrollPanel等非顶层容器必须放入窗口之内才能显示一般独立应用程序使用JFrame,在上面放置Jpanel面板,如果应用到浏览器中,使用JApplet121、Swing组件分类(2)组件类(componentclass)所有SwingGUI组件类(除JFrame、JApplet和JDialog)都是JComponent类的子类例如,JButton、JTextField、JTextArea、JComboBox、JList、JRadioButton和JMenu等(3)辅助类(helperclass)用来描述组件属性的,辅助类通常包含在java.awt包中.如,绘图类Graphics,颜色类Color,字体类Font,字体属性类FontMetrics等Swing组件不能取代AWT的全部类,只能替代AWT的GUI组件类(Button,TextField,TextArea等),AWT辅助类保持不变。132、Swing容器的层次关系一般的Swing窗口,实际上包含几个“层次”它是Java应用程序的顶层容器。顶层容器JFrame、JDialog等根窗格分层窗格内容窗格Jpanel玻璃窗格根窗格(rootpane)是一个轻型容器在创建顶层容器后自动创建是顶层容器包含的最高内层无法在这一层做任何操作与处理分层窗格(layeredpane)该窗格中的组件可以设置图层层次,不会被内容窗格中的对象屏蔽图层重叠时,层次低的会被屏蔽本层主要用来管理菜单栏和内容窗格若没有菜单栏,则内容窗格会充满整个顶层窗格。内容窗格(contentpane)默认状态下是一个具有布局管理器的Jpanel对象。大部分可见组件都放在内容窗格中。玻璃窗格(glasspane)这一层主要用来产生绘图效果,触发窗口程序的各种事件。默认是隐藏的。除非实现玻璃窗格的paint()方法,否则它是透明的。一般,根窗格、分层窗格、玻璃窗格都不直接使用。顶层窗格(toplevercontainer)是一个窗口容器对象。14Swing程序结构简介Swing的程序设计一般可按照下列流程进行:导入Swing包设置顶层容器设置组件增加组件到容器进行事件处理14导入Swing包首先必须导入Swing包:importjavax.swing.*;大多数Swing程序中,还需要导入两个主要的AWT包importjava.awt.*;importjava.awt.event.*;15JFrame特点JFrame的内容窗格利用getContentPane()方法获取Container类的对象。JFrame类对象显示效果是一个“窗口”,带有标题栏和尺寸重置角标ImageIcon图标对象。图像类型是image,使用ImageIcon类创建图标对象。JMenuBar是框架的可选菜单默认为不可见,setVisible(true)方法使之可见默认的布局管理器是BorderLayout使用setLayout()方法可以改变布局,要人工控制组件在容器中的大小和位置,调用方法setLayout(null)取消容器的布局管理器。再使用setLocation()、setSize()、setBounds()等方法来设定2、框架类JFrame162、框架类JFrameJFrame的常用构造方法有:JFrame()//创建一个没有窗口标题的窗口JFrame(Stringtitle)//创建一个标题为title的框架例如JFramejfrm=newJFrame(这是个Swing程序);JFramejfrm=newJFrame();172、框架类JFramejfrm.setSize(250,140);//设置框架大小jfrm.setLocation(260,150);//设置组件显示位置的左上角坐标250140(0,0)260150182、框架类JFrameJFrame的常用成员方法:voidsetTitle(Stringtitle)//设置框架的标题StringgetTitle()//返回框架的标题voidsetVisible(booleanb)//参数为true时设置框架可见,该方法调用前框架不可见voidsetSize(doublew,doubleh)//设置框架的宽和高voidsetLocation(intx,inty)//设置窗口左上角的坐标,(0,0)为屏幕左上角ContainergetContentPane()//返回框架的内容面板voidpack()//根据框架中放置的组件和布局调整窗口大小voidsetJMenuBar(JMenuBarmenubar)//为框架设置菜单条voidsetDefaultCloseOperation(intoperation)//设置关闭窗口后的默认操作192、框架类JFrame调用JFrame中的方法setDefaultCloseOperation(intoperation)用于关闭按钮处理方式的静态数据成员JFrame.DO_NOTHING_ON_CLOSE//关闭窗口按钮失效,什么也不做JFrame.DISPOSE_ON_CLOSE//隐藏窗口,释放窗口占用的其他资源JFrame.HIDE_ON_CLOSE//隐藏窗口,但没有关闭窗口JFrame.EXIT_ON_CLOSE//结束程序运行例如:jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);202、框架类JFramepublicclassExample1{publicstaticvoidmain(String[]args){JFramef=newJFrame(空的框架);f.setSize(200,150);f.setLocation(100,100);f.setVisible(true);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}212、框架类JFrame框架窗口的创建。importjava.awt.Color;//加载java.awt包里的颜色类Colorimportjava.awt.Image;//加载java.awt包里的图像类Imageimportjavax.swing.*;//加载javax.swing包里的所有类publicclassApp12_1{staticJFramejfrm=newJFrame(这是个Swing程序);//创建静态框架并设置标题publicstaticvoidmain(String[]args){JLabellab=newJLabel(我是一个标签);//创建一个标签对象labImageim=(newImageIcon(中国心.jpg)).getImage();//创建图标对象imjfrm.setIconImage(im);//设置窗口的显示图标jfrm.setSize(250,140);//设置框架大小jfrm.setBackground(Color.YELLOW);//设置框架背景颜色为黄色jfrm.setLocation(260,150);//设置窗口的位置jfrm.add(lab);jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jfrm.setVisible(true);}}此处黄色并不能正常显示?223、JPanel面板类面板一种没有标题栏、没有边框的中间层容器面板不是顶层容器,必须放到其他容器内,也可以放入另一个面板内。Jpanel可以容纳其他组件,一般用于布局和定位默认的布局管理器FlowLayout,可以使用setLayout()改变默认布局管理器JPanel的构造方法有:publicJPanel()

1 / 89
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功