Java程序设计Java_11Swing图形界面设计

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

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

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

资源描述

1第九章Swing图形用户界面9.1概述9.2容器组件9.3基本组件9.4布局管理器9.5事件处理模型9.6本章小结29.1概述图形用户界面(GUI)CommandLineGraphicsUserInterface数据的图形显示形式友好的交互方式简化计算机软件的学习过程GUI示例jdk1.7\demo\jfc\SwingSet2GUI组件:Labels,Textfields,Buttons等等39.1概述在Java语言中,有两个包(java.awt和javax.swing)囊括了实现图形用户界面的所有基本元素,这些基本元素主要包括容器、组件、绘图工具和布局管理器等。java.awt是java1.1用来建立GUI的图形包,awt是抽象窗口工具包(AbstractWindowToolkit)的缩写,其中的组件常被称为AWT组件。javax.swing是Java2提出的AWT的改进包,主要改善了组件的显示外观,增强了组件的控制能力。49.1概述早期版本的AWT组件在java.awt包里,包括Button、Checkbox、Scrollbar等,都是Component类的子类大部分含有nativecode,所以随操作系统平台的不同会显示出不同的样子,而不能进行更改,是重量级组件(heavyweightcomponents)没有弹性、缺乏效率559.1概述AWT与Swingjava.awt包中的类及相互关系可以用下图来描述:事件类字体类GraphicsComponent颜色类布局管理类java.lang.ObjectCheckboxContainerButton…WindowPanelAppletDialogFrameList图像类菜单类Scrollpane69.1概述较新的Swing组件其名称都是在原来AWT组件名称前加上J,例如JButton、JCheckBox、JScrollbar等,都是JComponent类的子类Java1.2推出,架构在AWT之上,是AWT的扩展而不是取代,AWT仍然是Swing的一个必备补充。完全是由java语言编写的,其外观和功能不依赖于任何由宿主平台的窗口系统所提供的代码,是轻量级组件(lightweightcomponents)可提供更丰富的视觉感受,被越来越多地使用79.1概述Swing组件在javax.swing包中,源于AWT(packagejava.awt)的组件定义了两种类型的组件:顶层容器(JFrame,JApplet,JDialog和JWindow)轻量级组件(JComponent)Swing组件都是AWT的Container类的直接子类和间接子类。Swing组件以J开头,除了有与AWT类似的按钮(JButton)、标签(JLabel)、复选框(JCheckBox)、菜单(JMenu)等基本组件外,还增加了一个丰富的高层组件集合,如表格(JTable)、树(JTree)。89.1概述AWT与Swing顶层窗口类之间的关系javax.swingJFramejava.langObjectjava.awtComponentContainerFrameDialogwindowPaneljava.appletAppletJDialogJComponentJApplet99.1概述Swing组件javax.swingAbstractButtonjava.langObjectjava.awtComponentContainerJListJComponentJOptionPaneJPopupMenuJTextComponentJMenuBarJScrollPaneJLabelJPanelJToggleButtonJButtonJMenuItemJMenuJRadioButtonJCheckBoxJTextAreaJTextFieldJPasswordField109.1概述Swing的组件和容器层次JComponent类是除了顶层容器以外所有Swing组件的基类,根据继承关系,我们可以在每个基类中找到大多数GUI组件的常见操作Component类包含paint、repaint方法,可以在屏幕上绘制组件大多数GUI组件直接或间接扩展ComponentContainer类容纳相关组件包括add方法,用来添加组件包括setLayout方法,这个方法可用来设置布局,以帮助Container对象对其中的组件进行定位和设置组件大小JComponent类——多数Swing组件的超类可抽换的外观和感觉,即可根据需求定制外观和感觉。快捷键(通过键盘直接访问GUI组件)一般的事件处理功能119.1概述--Swing的组件和容器层次通常将javax.swing包里的Swing组件归为三个层次顶层容器中间层容器基本组件容器层次结构是一个以顶层容器为根的树状组件集合为了显示在屏幕上,每个组件必须是一套容器层次结构的一部分每个组件只能放置在某个容器内一次如果某个组件已经在一个容器中,又将它加到另外一个容器中,这个组件就会从第一个容器中清除容器本身也是一种组件129.1概述--Swing的组件和容器层次顶层容器Swing提供三个顶层容器的类JFrame实现单个主窗口JDialog实现一个二级窗口(对话框)JApplet在浏览器窗口中实现一个applet显示区域必须和操作系统打交道,所以都是重量级组件从继承结构上来看,它们分别是从原来AWT组件的Frame、Dialog和Applet类继承而来。每个使用Swing组件的Java程序都必须至少有一个顶层容器,别的组件都必须放在这个顶层容器上才能显现出来。139.1概述--Swing的组件和容器层次中间层容器其存在的目的仅仅是为了容纳别的组件,使界面有条理,美观,易于控制。分为两类一般用途的JPanelJScrollPaneJSplitPaneJTabbedPaneJToolBar特殊用途的JInternalFrameJRootPane可以直接从顶层容器中获得一个JRootPane对象来直接使用,而别的中间容器使用的时候需要新建一个对象。149.1概述--Swing的组件和容器层次基本组件通常是在图形用户界面中和用户进行交互的组件基本功能是和用户交互信息,而不像前两种组件那样是用来容纳别的组件的根据功能的不同,可被分为三类显示不可编辑信息的JLabel、JProgressBar、JToolTip有控制功能、可以用来输入信息的JButton、JCheckBox、JRadioButton、JComboBox、JList、JMenu、JSlider、JSpinner、JTexComponent等能提供格式化的信息并允许用户选择的JColorChooser、JFileChooser、JTable、JTree159.1概述--Swing的组件和容器层次三层容器结构示例importjavax.swing.*;importjava.awt.*;publicclassEx10_1{publicstaticvoidmain(String[]args){JFrame.setDefaultLookAndFeelDecorated(true);JFrameframe=newJFrame(SwingFrame);ContainercontentPane=frame.getContentPane();JPanelpanel=newJPanel();panel.setBorder(BorderFactory.createLineBorder(Color.black,5));panel.setLayout(newGridLayout(2,1));JLabellabel=newJLabel(Label,SwingConstants.CENTER);JButtonbutton=newJButton(Button);panel.add(label);panel.add(button);contentPane.add(panel);frame.pack();//对组件进行排列frame.show();//显示frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}169.1概述--Swing的组件和容器层次运行结果程序说明首先创建一个JFrame类顶级容器frame然后获得顶级容器的内容面板contentPane,只有通过它才能加入其他组件。然后创建一个JPanel类的中间容器panel,并设置边框以及布局然后创建基本控制组件Label,button,并将它们添加到中间容器上然后将中间容器通过内容面板添加到顶层容器上,并对组件进行排列17基于Swing的JavaGUI设计思路基本的java程序的GUI设计工具。主要包括下述几个概念:组件—Component容器—Container布局管理器—LayoutManager事件处理在Java中,开发一个GUI程序,通常需要以下几步:构建一个顶层容器;通常是JFrame或JApplet构建若干个组件,组件可以是其它容器;设定容器的布局管理器;用容器的add方法将这些组件加入到这个容器中;设置组件事件;并将组件事件与代码关联。18第九章Swing图形用户界面9.1概述9.2容器组件9.3基本组件9.4布局管理器9.5事件处理模型9.6本章小结199.2容器组件JFrameJDialogJAppletJPanelJScrollPaneJSplitPaneJTabbedPaneJToolBar209.2容器组件Swing提供了3个顶层容器类:JFrame、JApplet、JDialog都是重量级组件,分别继承了AWT组件Frame、Applet和Dialog每个顶层容器都有一个内容面板,通常直接或间接的容纳别的可视组件可以有选择地为顶层容器添加菜单,菜单被放置在顶层容器上219.2容器组件——JFrame框体(JFrame)JFrame是一种具有边框的容器,它是JavaApplication程序的图形用户界面的最外层容器。特点:(1)有边框(2)能被移动、缩放和关闭(3)作为最外层容器,不能被其它容器所包含(4)默认布局:边界布局(BorderLayout)229.2容器组件——JFrame类JFrame是java.awt.Frame的子类在Swing的组件中,JFrame并不全是由Java编写的是一种与平台关系比较密切的组件(Heavyweightcomponent)java.lang.Object|+--java.awt.Component|+--java.awt.Container|+--java.awt.Window|+--java.awt.Frame|+--javax.swing.Jframe每个包含Swing组件的主窗口都应用JFrame来实现239.2容器组件——JFrame构造函数JFrame();建立一个无标题的FrameJFrame(Stringtitle);建立一个标题为title的Frame。常用方法StringgetTitle();获取窗口标题voidsetTitle(Strings);设置窗口标题voidsetVisible(booleanb);设置窗口可见性voidsetBounds(inta,intb,intwidth,intheight);设置窗口位置和大小voidsetBackground(Colorc);设置窗口背景颜色voidpack();用紧凑方式显示窗口voidsetSize(intwidth,intheight);设置窗口大小voidsetLocation(intx,inty);设置初始位置。其

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

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

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

×
保存成功