第12章 图形用户界面程序设计入门

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

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

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

资源描述

主讲教师:丁月华Email:ding_mickey@sina.com第12章图形用户界面程序设计入门1-2WHPU内容12.1引言12.2GUI组件12.3JavaGUIAPI12.4框架(重要)12.5布局管理器(重要)12.6Color类12.7Font类12.8使用面板做子容器(重要)12.9SwingGUI组件的一般特性12.10图像图标1-3WHPU12.1引言没有图形操作界面的软件实在有些枯燥、单调、交互性差需要图形交互界面1-4WHPU12.2GUI组件使用GUI组件对象创建图形用户界面。Java提供了一组GUI组件类,包括JButton、JLabel、JTextField、JCheckBox等等Swing和AWT(AbstractWindowTookit)AWT称为重型组件,适用于开发简单的图形用户界面,AWT组件自动通过他们各自的代理映射成特定平台的组件。Swing称为轻型组件(Java2发行),直接用java代码绘制在画布上,不依赖本地GUI建议:由于Swing不依赖底层平台,有跨平台的特性,推荐使用。1-5WHPU12.3JavaGUIAPIJavaGUIAPI中的类可以分成三组:容器类、辅助类和组件类容器类,如JFrame、JPanel、JApplet等,用来包含其他组件。辅助类,如Graphics、Color、Font、FontMetrics等,用来绘制图形。组件类,如JButton、JTextField、JTextArea、JList等等,是用户界面中的图形元素。1-6WHPU12.3.1SwingGUI组件(重要)Component是所有用户界面类的父类,而JComponent类是所有Swing组件类的父类JComponent是抽象类,但其具体子类可以实例化DimensionFontFontMetricsComponentGraphicsObjectColorContainerPanelAppletFrameDialogWindowJComponentJAppletJFrameJDialogSwingComponentsinthejavax.swingpackageLightweightHeavyweightClassesinthejava.awtpackage1LayoutManager*JPanel1-7WHPU12.3.2容器类功能:用来盛装其他GUI组件的容器AWT容器类:Window、Panel、Applet、Frame、DialogSwing容器类:Component、Container、JFrame、JDialog、JApplet和JPanelP319DimensionFontFontMetricsComponentGraphicsObjectColorContainerPanelAppletFrameDialogWindowJComponentJAppletJFrameJDialogSwingComponentsinthejavax.swingpackageLightweightHeavyweightClassesinthejava.awtpackage1LayoutManager*JPanel1-8WHPU12.3.3GUI辅助类功能:用来描述GUI组件的属性,如图形环境、颜色、字体以及大小包括Graphics、Color、Font、FontMetrics、Dimesion、LayoutManagerP319DimensionFontFontMetricsComponentGraphicsObjectColorContainerPanelAppletFrameDialogWindowJComponentJAppletJFrameJDialogSwingComponentsinthejavax.swingpackageLightweightHeavyweightClassesinthejava.awtpackage1LayoutManager*JPanel1-9WHPUJavaGUI组件Component是所有用户界面类的父类,而JComponent类是所有Swing组件类的父类JComponent是抽象类,但其具体子类可以实例JMenuItemJCheckBoxMenuItemAbstractButtonJComponentJMenuJRadioButtonMenuItemJToggleButtonJCheckBoxJRadioButtonJComboBoxJInternalFrameJLayeredPaneJListJMenuBarJOptionPaneJPopupMenuJProgressBarJFileChooserJScrollBarJScrollPaneJSeparatorJSplitPaneJSliderJTabbedPaneJTableJTableHeaderJTextFieldJTextComponentJTextAreaJToolBarJToolTipJTreeJRootPaneJPanelJPasswordFieldJColorChooserJLabelJEditorPaneJSpinnerJButton1-10WHPUJavaGUI组件ContainerLayouManagerPannelWindowComponentAppletFrameDialog包java.awt中的类JAppletJFrameJDialogJComponent包javax.swing中的Swing组件JMenuItemJCheckBoxMenuItemAbstractButtonJComponentJMenuJRadioButtonMenuItemJToggleButtonJCheckBoxJRadioButtonJComboBoxJInternalFrameJLayeredPaneJListJMenuBarJOptionPaneJPopupMenuJProgressBarJFileChooserJScrollBarJScrollPaneJSeparatorJSplitPaneJSliderJTabbedPaneJTableJTableHeaderJTextFieldJTextComponentJTextAreaJToolBarJToolTipJTreeJRootPaneJPanelJPasswordFieldJColorChooserJLabelJEditorPaneJSpinnerJButton1-11WHPU12.4框架(JFrame)12.4.1创建框架12.4.2框架中添加组件1-12WHPU12.4框架(JFrame)12.4.1创建框架JFrame()JFrame(title:String)javax.swing.JFrame+JFrame()+JFrame(title:String)+getSize(width:int,height:int):void+setLocation(x:int,y:int):void+setVisible(visible:boolean):void+setDefaultCloseOperation(mode:int):void+setLocationRelativeTo(c:Component):voidCreatesadefaultframewithnotitle.Createsaframewiththespecifiedtitle.Specifiesthesizeoftheframe.Specifiestheupper-leftcornerlocationoftheframe.Setstruetodisplaytheframe.Specifiestheoperationwhentheframeisclosed.Setsthelocationoftheframerelativetothespecifiedcomponent.Ifthecomponentisnull,theframeiscenteredonthescreen.1-13WHPU12.4.1创建框架实例12-1importjavax.swing.*;publicclassMyFrame{publicstaticvoidmain(String[]args){JFrameframe=newJFrame(MyFrame);frame.setSize(400,300);frame.setLocationRelativeTo(null);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}}1-14WHPU12.4框架(JFrame)12.4.2框架中添加、删除组件添加:JFrame.add(Componentcomp);删除:JFrame.remove(Componentcomp);importjavax.swing.*;publicclassMyFrameWithComponents{publicstaticvoidmain(String[]args){JFrameframe=newJFrame(MyFrameWithComponents);JButtonjbtOK=newJButton(OK);frame.add(jbtOK);frame.setSize(400,300);frame.setVisible(true);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setLocationRelativeTo(null);}}1-15WHPU12.5布局管理器(重要)布局管理器:负责“管理”容器中内容的“布局”,布局管理器能够控制每个部件的大小(size)、形状(shape)和位置(position)布局管理器使用布局管理器类创建,而且都实现LayoutManager接口创建布局管理器方法:LayoutManagerlayoutManager=newxLayout();Container.setLayout(layoutManager);布局管理器:GridLayout/FlowLayout/BorderLayout重点:理解布局管理器功能,每种布局管理器的特点1-16WHPU12.5布局管理器(重要)12.5.1FlowLayout功能:按组件的添加顺序从左到右排列在容器中,一行排满,再排新的一行。使用三个类常量指定组件的对齐方式:FlowLayout.RIGHT、FlowLayout.LEFT、FlowLayout.CENTERjava.awt.FlowLayout-alignment:int-hgap:int-vgap:int+FlowLayout()+FlowLayout(alignment:int)+FlowLayout(alignment:int,hgap:int,vgap:int)Thealignmentofthislayoutmanager(default:CENTER).Thehorizontalgapofthislayoutmanager(default:5pixels).Theverticalgapofthislayoutmanager(default:5pixels).CreatesadefaultFlowLayoutmanager.CreatesaFlowLayoutmanagerwithaspecifiedalignment.CreatesaFlowLayoutmanagerwithaspecifiedalignment,horizontalgap,andverticalgap.Thegetandsetmethodsforthesedatafieldsareprovidedin

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

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

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

×
保存成功