《Java语言程序设计(一)》串讲主讲人:周立民更多优质自考资料尽在百度贴吧自考乐园俱乐部()欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........图形界面设计本部分重点内容Ø框架窗口、按钮事件处理方法,Ø面板和滚动面板、布局设计、文本框事件的处理方法Ø利用文本框和文本区域作数据输入输出的方法。Ø选择框、单选按钮、菜单、对话框以及鼠标事件的处理方法。3AWT概述创建GUI创建GUI通过java.awt包容器组件布局管理器字体事件图形和绘制方法包含AWT容器组件以图形表示的对象允许用户交互创建并构造用于选择新字体的对象用于用户和系统交互AWT包含内容使用AWT图形方法相对于窗口绘制图形定义GUI组件的位置AWT(重量级组件)AWT(重量级组件)4Swing创建GUI创建GUI通过Javax.swing包Swing包含内容容器组件可改变的外观Java2D图形绘制包含Swing组件以图形表示的对象允许用户交互使用Java2D绘制图形可更换图形界面的风格Swing(轻量级组件,纯Java组件)Swing(轻量级组件,纯Java组件)5轻量级组件可改变的外观MVC结构性能更稳定优点SwingSwing(与AWT相比)Swing(与AWT相比)6Swing容器组件主窗口Swing应用程序创建容器设置容器大小(对框架及面板而言)设置容器可见度(对框架及面板而言)创建顶层容器顶层容器(每个应用程序中至少有一个)内容面板主要显示区域包含GUI中的可视组件7javax.swing包javax.swing包常见容器JFrameJFrameJScrollPaneJScrollPaneJPanelJPanel1.扩展java.awt.Frame类2.用于在Swing程序中创建窗口3.包含边框、标题和用于关闭和图标化窗口的按钮1.中间容器2.用于将较小的轻量级组件组合在一起3.与内容窗格相似,面板在默认情况下不透明1.管理视区、滚动条及可选的行和列的标题视区Swing容器组件8javax.swing包javax.swing包1.扩展java.awt.Frame类2.用于在Swing程序中创建窗口3.包含边框、标题和用于关闭和图标化窗口的按钮常用的顶层容器JFrameJFrameJScrollPaneJScrollPaneJPanelJPanel1.中间容器2.用于将较小的轻量级组件组合在一起3.与内容窗格相似,面板在默认情况下不透明1.管理视区、滚动条及可选的行和列的标题视区Swing容器组件JFrame类的方法JFrame()JFrame(Stringtitle)voidpack()voidsetSize(intwidth,intheight)DimensiongetSize()voidsetTitle(Stringname)JPanel类的方法JPanel()JPanel(LayoutManagerlayout)voidadd(Componentcomp)VoidsetLayout(LayoutManagerlayout)JScrollPane类的方法JScrollPane()JScrollPane(Componentview)voidsetVerticalScrollBarPolicy(intconst)voidsetHorizontalScrollBarPolicy(intconst)9SwingGUI组件JTexFieldJComboBoxJCheckBoxJButtonJRadioButtonJLabelJTexArea10JLabelPropertiesDescription1.Alabelisnotinteractiveanddoesnotrespondtoanyinputevents1.Displaysalabelonform2.InSwing,labelscandisplaytextaswellasimagesJLabel方法说明JLabel()JLabel()创建一个默认的JLabel实例JLabel(Stringtext)以指定的文本创建JLabel实例JLabel(Iconimage)以指定的图像创建JLabel实例getText()返回标签显示的文本字符串setIcon(Iconicon)定义标签将显示的内容setText(Stringtext)定义此组件将要显示的单行文本11JTextFieldPropertiesDescription1.JTextFieldcomponentallowsentering/editingasinglelineoftext.1.JTextFieldisalightweightcomponentthatallowstheeditingofasinglelineoftextJTextField方法说明JTextField()构造一个新的文本输入框JTextField(Stringtext)构造一个新的文本输入框,以指定文本作为初始文本getColumns()返回文本字段中的列数setColumns(intcolumns)设置文本字段中的列数,然后使布局无效setHorizontalAlignment(intvalue)设置文本字段中文本的水平对齐方式:JTextField.LEFTJTextField.CENTERJTextField.RIGHT12JButton属性说明JButton类派生自javax.swing.AbstractButton类,该类由JComponent扩展而来JButton对象包含一个文本标签、图像图标或两者,描述按钮、文本/图标周围的空白区域和边框的用途JButton方法说明JButton()创建不带文本和图标的按钮JButton(Iconicon)创建带图标的按钮JButton(Stringtext)创建带文本的按钮JButton(Stringtext,Iconicon)创建带文本和图标的按钮setRolloverIcon(Iconimg)当鼠标经过时,显示指定的图标setSelectedIcon(Iconimg)当选择按钮时,显示img指定的图标13JCheckBoxJCheckBox方法说明JCheckBox()创建初始非选中的复选框,且不带文本或图标JCheckBox(Stringtext)用指定的文本创建初始非选中的复选框。JCheckBox(Stringtext,booleanselected)用指定文本创建一个复选框,并指定是否初始选中该复选框14JRadioButtonJRadioButton方法说明JRadioButton()创建初始非选中的单选按钮,不设置其文本JRadioButton(Stringtext)用指定的文本创建非选中的单选按钮JRadioButton(Stringtext,booleanselected)用指定的文本和选择状态创建单选按钮15JComboBox属性说明在Swing中,组合框由JComboBox类表示。ComboBox是文本字段和下拉列表的组合,让用户可以键入值或从显示给用户的值中进行选择JComboBox方法说明JcomboBox()创建一个下拉框实例addItem(Objectobj)将项添加至项的列表getItemAt(intindex)返回指定索引位置的列表项getItemCount()返回列表(作为对象)中的项数getSelectedItem()将当前选择的项作为一个对象返回getSelectedIndex()返回当前选择项的索引位置16事件处理程序用户交互用户交互事件单击鼠标按下/释放鼠标按钮对象状态改变对象状态改变调用事件处理确定发生的事件的类型确定生成的事件的组件编写合适的代码处理事件17源对象源对象监听器监听器事件传播事件的实例事件的实例方法方法传递途径代理事件模型Swing中的GUI组件适配器对象事件处理程序18源对象源对象监听器监听器事件传播事件实例事件实例方法方法传递途径代理事件模型Swing中的GUI组件适配器对象事件处理程序(java.awt.event)Event类接口ActionEventActionListenerAdjustmentEventAdjustmentListenerComponentEventComponentListenerFocusEventFocusListenerItemEventItemListenerWindowEventWindowListenerTextEventTextListenerMouseEventMouseListener,MouseMotionListenerKeyEventKeyListener19布局管理器Ø用户界面上的屏幕组件可以按照一定的格式布局Ø例如水平排列,或按网格方式排列Ø布局管理器类是一组类,它Ø实现java.AWT.LayoutManager接口Ø帮助在容器中放置组件ØJava中可用的各种布局如下:ØBorderLayoutØFlowLayoutØGridLayout20BorderLayout上边的组件左边的组件右边的组件下边的组件容器容器NorthSouthEastWestCENTER21WestEastBorderLayout上边的组件右边的组件左边的组件下边的组件容器容器NorthSouthCenter方法说明BorderLayout()创建新的BorderLayout,组件之间没有间距setHgap(inthgap)将组件间的水平间距设置为指定的值setVgap(intvgap)将组件间的垂直间距设置为指定的值22FlowLayout容器容器流布局是面板的默认布局管理器左上角右下角依次排序的组件垂直或水平间距23FlowLayout容器容器流布局是面板的默认布局管理器左上角右下角顺序排列的组件垂直或水平间距方法说明FlowLayout()构造新的中间对齐的FlowLayout,将垂直和水平间距保留为5个像素setAlignment(intalign)设置指定布局的对齐方式setHgap(inthgap)设置指定布局的水平间距setVgap(intvgap)设置指定布局的垂直间距24GridLayout行行列列组件大小相同重新调整组件大小以适合各自的单元指定网格中的行数和列数,创建网格布局25GridLayout行行列列组件大小相同重新调整组件大小以适合各自的单元指定网格中的行数和列数,创建网格布局方法描述GridLayout()创建网格布局,默认为每个组件占用一整列和一单行GridLayout(introws,intcols)用指定的行数和列数创建网格布局。GridLayout(introws,intcols,inthgap,intvgap)用指定的行数和列数、指定的水平和垂直间距创建网格布局setColumns(intcols)将相应布局中的列数设置为指定值setHgap(inthgap)将相应布局中的水平间距设置为指定值setVgap(intvgap)将相应布局中的垂直间距设置为指定值setRows(introws)将相应布局中的行数设置为指定值26总结ØSwing是在AWT基础上发展起来的轻量级组件,用于开发JavaGUI应用程序Ø容器对象是能够容纳其他Swing组件的一种组件。容器负责对它包含的组件进行布局。常用的容器有JFrame、JPanel和JScrollPaneØ组件可置于用户界面上,并可使其显示或改变大小。常用的组件有JLabel、JTextField、JTextArea、JButton、JCheckBox、JRadioButton和JComboBoxØ要处理事件,可使用事件处理程序,以执行所需操作Ø标准事件适配器或匿名内部类适配器可用于处理事件Ø布局管理器可在容器中自动定位组件27菜单Ø显示一个项目列表,指明用户可以执行的各项操作文件文件编辑编辑格式格式帮助帮助字体字体段落段落项目符号和编号项目符号和编号