资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,可整理ppt,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,可整理ppt,*,Java,程序设计案例教程,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,可整理ppt,*,北京大学出版社,第,06,章,Java,程序设计,案例教程,1,可整理ppt,第,06,章,Java,语言的图形用户界面开发,UI,组件及其层次结构,AWT,常用组件及其应用,Swing,常用组件及其应用,使用框架、面板和,GUI,组件创建用户界面,使用布局管理器管理在容器中布局组件,事件处理机制,小应用程序的概念及应用,教学目标,2,可整理ppt,6.1,应用,AWT,组件开发图形用户界面程序,Abstract Windows Toolkit(AWT),是最原始的,Java GUI,工具包。,AWT,的主要优点是它在,Java,技术的每个版本上都成为了一种标准配置。这意味着不需要单独安装这个工具包,在任何一个,Java,运行环境中都可以使用它。,AWT,是一个非常简单的具有有限,GUI,组件、布局管理器和事件的工具包。,AWT,还提供了一个丰富的图形环境,尤其是在,Java 1.2,及其以后版本中更是如此。通过,Graphics2D,对象和,Java 2D,、,Java 3D,服务,可以创建功能强大的图形应用程序。,3,可整理ppt,java.awt包中主要的类及层次关系如下,:,java.lang.Object所有Java类的超类,|-Font字体类,|-Color颜色类,|-Graphics图形类,|-Component组件类,|-Label标签类,|-Button按钮类,|-TextComponent,文本组件类,|-TextField,文本域类(单行),|-TextArea,文本区类(多行),|-List列表类,|-Container容器类,|-Panel,面板类,|-Applet,小程序类,|-Window窗口类,|-Frame,框架类,|-Dialog,对话框类,|-Checkbox单选按钮与复选按钮类,|-CheckBoxGroup按钮组合类,|-MenuComponent菜单组件类,|-MenuBar菜单栏类,|-MenuItem菜单项类,|-FlowLayout布局管理器,|-BorderLayout布局管理器,|-GridLayout布局管理器,|-CardLayout布局管理器,|-GridBagLayout布局管理器,4,可整理ppt,6.1.1,使用,java.awt,设计图形用户界面,抽象窗口工具包,AWT,是,Sun,公司为,Java,程序设计者提供的建立图形用户界面,GUI,的工具集。,AWT,可用于,Java,的,Applet,和,Application,程序中。,它支持的图形用户界面编程功能包括:用户界面组件、事件处理模型、图形和图像工具、布局管理器。因此,,编写图形用户界面程序一定要引入,java.awt,包,。,5,可整理ppt,import java.awt.*;,import java.awt.event.*;,import java.util.*;,public class myClock extends Frame implements ActionListener,Label lblTimeDisplay=new Label(,请单击,显示时间,按钮,);,Button btnDisplayTime=new Button(,显示时间,);,myClock()/,构造方法,super(,一个简单的,AWT,应用程序,);,btnDisplayTime.addActionListener(this);/,为组件注册监听器,setLayout(new BorderLayout();/,设置布局管理器,this.add(lblTimeDisplay,BorderLayout.NORTH);/,添加组件,this.add(btnDisplayTime,BorderLayout.SOUTH);,this.addWindowListener(new WindowAdapter()/,注册监听器,public void windowClosing(WindowEvent e),System.exit(0););,例,6-1,一个简单的图形用户界面程序,6,可整理ppt,public void actionPerformed(ActionEvent e)/,按钮事件处理方法,Calendar calTime=Calendar.getInstance();,lblTimeDisplay.setText(“,现在时间,+,calTime.get(Calendar.HOUR_OF_DAY)+,时,+calTime.get(Calendar.MINUTE)+,分,);,public static void main(String args),Frame frame=new myClock();/,实例化类,frame.setSize(150,80);/,设置窗口大小,frame.setLocationRelativeTo(null);/,在屏幕中间显示窗口,frame.setVisible(true);/,使窗口可见,7,可整理ppt,6.1.1,使用,java.awt,设计图形用户界面,知识点,Java,是纯面向对象的程序设计语言,因此,不管是控制台应用程序,还是图形界面的应用程序,都要先定义一个类。一个应用程序可以有多个类,但只能有一个,public,类,而且只能有一个,main(),方法,这个方法一定要位于这个公共类中。,开发图形用户界面程序的一般步骤如下。,(1),创建组件,(,包括容器,),对象,设置组件对象的属性。,(2),如果需要,为组件注册监听器。,(3),设置容器的布局管理器。,(4),向容器中添加组件对象,(,使用容器的,add(),方法,),。,(5),编写事件处理程序,(,实现监听器中的方法,),。,8,可整理ppt,6.1.2,容器和组件,Java,的图形用户界面是由,组件,组成的,例如按钮,(Button),、文本域,(TextField),和标签,(Label),等。其中有一类特殊的组件称为,容器,(Container),,例如框架,(Frame,,是一个有边框的独立窗口,与,Windows,窗口相似,),、面板,(Panel,,是包含在窗口中的一个不带边框的区域,),等。容器是用来盛放其他组件的,可以通过容器提供的,add(),方法将组件添加到容器中。对于,小程序,(Applet),,由于其本身就是一个容器,(,因为它是,Panel,的子类,),,因此,可以将组件直接添加到小程序上。也可以先将组件加到其他容器中,然后再将容器加到小程序中。,9,可整理ppt,6.1.2,容器和组件,用框架,Frame,创建的窗口是一个可独立运行的主窗口,常用于开发桌面应用程序,用它创建的窗口是一个包含标题栏、系统菜单栏、最大最小化按钮以及可选菜单栏的完整窗口。创建一个,Frame,窗口后,通常需要调用,setSize(),方法来设置窗口的大小,并调用,setVisible(),方法来显示窗口。,Frame,默认的,布局管理器,是,BorderLayout,,默认的添加组件的位置是,BorderLayout.CENTER,。,面板,Panel,不是一个独立的窗口,只是窗口中的一个区域,因此,面板必须添加到窗体,(Frame),中。面板是一个不可视的容器。,10,可整理ppt,import java.awt.*;,public class LayoutFrame extends Frame,LayoutFrame(),super(,带组件的窗体,);/,设置窗体标题栏,setLayout(new,BorderLayout,();/,设置布局管理器,/,添加按钮组件,并设置按钮组件在容器中的位置,add(new,Button,(,北,),BorderLayout.NORTH);/,上,add(new,Button,(,南,),BorderLayout.SOUTH);/,下,add(new,Button,(,西,),BorderLayout.WEST);/,左,add(new,Button,(,东,),BorderLayout.EAST);/,右,例,6-2,创建组件和设置布局管理器,11,可整理ppt,/,添加标签组件,文本标签中间对齐,add(new,Label,(Hello,World!,Label.CENTER),BorderLayout.CENTER);,public static void main(String args),Frame frame=new LayoutFrame();,frame.setSize(200,200);/,设置窗体大小,frame.setVisible(true);/,显示窗体,12,可整理ppt,6.1.2,容器和组件,知识点,向容器内添加对象的方法如下:,容器对象,.add(,组件对象,约束条件,),如:,this.add(btnDisplayTime,BorderLayout.SOUTH);,BorderLayout,类中有,5,个静态常量:,EAST,,,WEST,,,SOUTH,,,NORTH,,,CENTER,,这,5,个常量用于指定组件在容器中的位置,分别表示东、西、南、北、中,5,个区域,这里的位置与地图坐标系相同,即上北、下南、左西、右东。,由于,myClock,本身就是一个容器类,因此,如果省略容器对象,则默认是将组件添加到当前类的实例中,所以上述语句也可以写成,:,add(btnDisplayTime,BorderLayout.SOUTH);,13,可整理ppt,6.1.3,标签组件,标签,(Label),组件用来显示一行,静态文本,。静态文本通常是不变的量,主要用于显示提示信息。通过程序可以改变静态文本的内容,但用户不能改变。,Label,组件没有任何特殊的边框和装饰,通常不产生事件。,1,Label,组件构造函数,Label(),创建不含文本标签的标签对象。,Label(String text),创建含文本标签的标签对象。,Label(String text,int alignment),创建含文本标签和对齐方式的标签对象。,14,可整理ppt,6.1.3,标签组件,2,Label,组件方法,getText(),获取标签的文本内容。,setText(String text),设置标签的文本内容。,3,Label,组件实例,Label lblName1=new Label(,张三,0);,/0,左对齐,,1,中间对齐,,2,右对齐,lblName1.getText();,/,获取标签,lblName1,的文本内容,lblName2.setText(,李六,);,/,将标签,lblName2,的内容改为“李六”,15,可整理ppt,6.1.4,文本域组件,文本域,(TextField),组件可以用来显示一行文本,它是图形用户界面经常使用的输入组件。当按,Enter,键或者,Return,键时,监听器,ActionListener,可以通过,actionPerformed(),方法获取这个事件。除了注册一个,ActionListener,监听器,还可以注册一个,TextListener,监听器来接收关于个别击键的通知。,1,TextField,组件构造函数,TextField(),创建显示内容为“空”的文本域对象。,TextField(int columns),创建具有指定宽度的文本域对象,TextField(String text),创建具有指定内容的文本域对象。,16,可整理ppt,6.1.4,文本域组件,2,TextField,组件方法,getText(),获取文本域的内容。,setText(String t),设置文本域的内容。,setFont(Font f),设置文本域的字体。,3,TextField,组件实例,TextField txtName=new TextField(10);,txtName.setFont(new Font(“,宋体,”,Font.BOLD,24);,txtName.setText(,张三,);,TextField txtSex=new TextField(,男,);,String name=txtSex.getText();,TextField txtAge=new TextField(18);,17,可整理ppt,6.1.5,按钮组件,按钮,(,Button,),组件是图形用户界面设计经常用到的组件,它提供了“按下并动作”的基本操作。通常构造一个带文本标签的按钮,用来提示用户这个按钮的作用。,18,可整理ppt,import java.awt.*;,import java.awt.event.*;,public class Calculater extends Frame,Label lblCalculator=new Label(,一个简单的计算器界面,Label.CENTER);,TextField,txtTitle,=new TextField(20);,Panel pnlCal=new Panel();,Button,btnAdd,=new Button(,加,);,Button btnMinus=new Button(,减,);,Button btnMulti=new Button(,乘,);,Button btnDivide=new Button(,除,);,例,6-3,标签、文本域和按钮应用实例,19,可整理ppt,Calculater(),super(,一个简单的计算器,);,setLayout(new GridLayout(3,1);,add(lblCalculator);,add(txtTitle);,pnlCal.setLayout(new FlowLayout();,pnlCal.add(btnAdd);,pnlCal.add(btnMinus);,pnlCal.add(btnMulti);,pnlCal.add(btnDivide);,add(pnlCal);,addWindowListener(new WindowAdapter(),public void windowClosing(WindowEvent e),System.exit(0););,20,可整理ppt,public static void main(String args),Frame frame=new Caltulater();,frame.setSize(200,130);,frame.setLocationRelativeTo(null);,frame.setVisible(true);,21,可整理ppt,6.1.5,按钮组件,知识点,1,Button,组件构造函数,Button(),默认构造函数,创建不带文本标签的按钮对象。,Button(String label),创建带文本标签的按钮对象。,2,Button,组件实例,Button btn=new Button(,确定,);,22,可整理ppt,6.1.6,复选框及复选框组组件,复选框,(,Checkbox,),由一个文本标签和一个可选框组成,它提供一种简单的“开,/,关”式输入方法。复选框是一个可处于“开”,(true),或“关”,(false),状态的图形组件。单击复选框可将其状态从“开”更改为“关”,或从“关”更改为“开”。复选框组是复选框的一个集合。,23,可整理ppt,import java.awt.*;,import java.awt.event.*;,public class Check_Box extends Frame,Label label1=new Label(,复选框组,);,Label label2=new Label(,复选框,);,Checkbox,checkbox1,checkbox2,checkbox3,checkbox4;,Check_Box(),addWindowListener(new WindowAdapter(),public void windowClosing(WindowEvent e),System.exit(0););,setLayout(new GridLayout(2,2);,CheckboxGroup,cbg=new CheckboxGroup();/,创建复选框组,例,6-4,复选框及复选框组,24,可整理ppt,/,创建复选框并加到复选框组中,checkbox1=new Checkbox(“,男,”,false,cbg);,checkbox2=new Checkbox(,女,false,cbg);,add(label1);,add(checkbox1);,add(checkbox2);,checkbox3=new Checkbox(,老,false);,checkbox4=new Checkbox(,少,false);,add(label2);,add(checkbox3);,add(checkbox4);,25,可整理ppt,public static void main(String args),Check_Box frame=new Check_Box();,frame.setTitle(,复选框及复选框组示例,);,frame.setSize(300,200);,frame.setLocationRelativeTo(null);,frame.setVisible(true);,26,可整理ppt,6.1.6,复选框及复选框组组件,知识点,1,复选框,1)Checkbox,组件构造函数,public Checkbox(String label,CheckboxGroup group,boolean state),使用指定标签创建一个复选框,并使它处于指定复选框组内,将它设置为指定状态。,label,此复选框的字符串标签,如果没有标签,则该参数为,null,;,group,此复选框的复选框组,如果没有这样的复选框组,则该参数为,null,;,state,此复选框的初始状态。,27,可整理ppt,6.1.6,复选框及复选框组组件,2)Checkbox,组件方法,public void setCheckboxGroup(CheckboxGroup g),将复选框的组设置为指定复选框组。如果复选框已经在另一个复选框组中,则首先从那个组中提取该复选框。,如果此复选框的状态为,true,,并且新组已经有一个选定的复选框,则将此复选框的状态更改为,false,。如果此复选框的状态为,true,,并且新组中没有选定的复选框,则此复选框将成为新组的选定复选框,并且其状态为,true,。,参数:,g,新复选框组,如果该参数为,null,,则从所有复选框组中移除此复选框,public void addItemListener(ItemListener l),添加指定的监听器,以接收来自此复选框的事件。,参数:,l,监听器。,28,可整理ppt,6.1.6,复选框及复选框组组件,知识点,2,复选框组,复选框组,(CheckboxGroup),用于对,Checkbox,集合进行分组。单击任何按钮,可将按钮状态设置为开,并且强制将任何其他开状态的按钮更改为关状态,CheckboxGroup,组件构造方法:,public CheckboxGroup(),以下代码创建一个复选框组,其中有,3,个复选框:,CheckboxGroup cbg=new CheckboxGroup();,add(new Checkbox(one,cbg,true);,add(new Checkbox(two,cbg,false);,add(new Checkbox(three,cbg,false);,29,可整理ppt,6.1.7,文本区组件,文本区,(TextArea),组件是显示多行文本的区域。可以将它设置为允许编辑或只读。,1,TextArea,组件构造方法,public TextArea(String text,int rows,int columns,int scrollbars),构造一个新文本区,该文本区具有指定的文本以及指定的行数、列数和滚动条可见性。,TextArea,类定义了一些可以作为,scrollbars,参数值的常量:,SCROLLBARS_BOTH,垂直和水平;,SCROLLBARS_VERTICAL_ONLY,仅垂直;,SCROLLBARS_HORIZONTAL_ONLY,仅水平;,SCROLLBARS_NONE,垂直和水平都没有。,30,可整理ppt,6.1.7,文本区组件,参数:,text,要显示的文本,如果,text,为,null,,则显示空字符串,;,rows,行数,如果,rows,小于,0,,则将,rows,设置为,0,;,columns,列数,如果,columns,小于,0,,则将,columns,设置为,0,;,scrollbars,确定为查看文本区创建的滚动条类型的常量。,31,可整理ppt,6.1.7,文本区组件,2,TextArea,组件方法,1,),public void insert(String str,int pos),在文本区的指定位置插入指定文本。,参数:,str,要插入的非,null,文本;,pos,插入的位置。,2,),public void append(String str),将给定文本追加到文本区已有文本之后。,参数:,str,要追加的非,null,文本。,32,可整理ppt,6.1.8,面板组件,面板,(Panel),是最简单也是非常重要的容器类。可以将其他组件放在面板提供的空间内,这些组件还可是其他容器。面板是一个无形的容器,它的作用主要用于窗口布局和绘制图形。,面板的默认布局管理器是,FlowLayout,布局管理器。,33,可整理ppt,import java.awt.*;,import java.awt.event.*;,public class Text_Area extends Frame implements ActionListener,TextField txtInput=new TextField(,30);/,创建文本域实例,TextArea,txa=new TextArea();/,创建文本区实例,Button btnOK=new Button(,确定,);,Panel,panel=new Panel();/,创建面板实例,Text_Area(),addWindowListener(new WindowAdapter(),public void windowClosing(WindowEvent e),System.exit(0););,例,6-5,文本区及面板的应用,34,可整理ppt,this.setLayout(new BorderLayout();/,窗口布局管理器,panel.setLayout(new FlowLayout();/,面板的布局管理器,btnOK.addActionListener(this);/,为按钮注册监听器,panel.add(txtInput);,panel.add(btnOK);,this.add(panel,BorderLayout.NORTH);,this.add(txa,BorderLayout.CENTER);,public void actionPerformed(ActionEvent e),txtInput.requestFocus();,txa.append(txtInput.getText()+n);,txtInput.setText();,35,可整理ppt,public static void main(String args),Text_Area frame=new Text_Area();,frame.setTitle(,文本区及面板示例,);,frame.setSize(300,200);,frame.setLocationRelativeTo(null);,frame.setVisible(true);,36,可整理ppt,6.1.8,面板组件,知识点,1,Panel,组件构造函数,public Panel(),使用默认的布局管理器创建新面板。默认布局管理器是,FlowLayout,。,public Panel(LayoutManager layout),创建具有指定布局管理器的新面板。,参数:,layout,此面板的布局管理器。,37,可整理ppt,6.1.8,面板组件,2,Panel,组件方法,public Component add(Component comp),将指定组件添加到此容器的尾部。当布局管理器是,FlowLayout,时,组件按从左到右的顺序追加,一行到头时自动换行。如果布局管理器是,GridLayout,,也是按照流水顺序追加,从左到右,从上到下,不能跳跃追加。,参数:,comp,要添加的组件。,38,可整理ppt,6.1.9,布局管理器,只有容器类组件才有布局管理器,每种布局管理器都有自己特定的摆放规则,容器的,setLayout(),方法可以设置布局管理器的摆放规则。,布局管理器主要用于排版,也就是确定组件在容器内的大小和位置。通常情况下,每种容器都被指定了一个默认的布局管理器,如,Panel,的默认布局管理器为,FlowLayout,,,Frame,的默认布局管理器为,BorderLayout,。每个容器都是,java.awt.Container,的子类,可使用容器的,setLayout(),方法指定容器的布局管理器的摆放规则。布局管理器可以随窗口的改变而调整组件的位置和大小。,39,可整理ppt,6.1.9,布局管理器,java.awt,包提供的,5,种主要布局管理器,1,流布局管理器,流布局管理器,(FlowLayout),按照从左到右的顺序来排列组件,当一行排满后自动排在下一行。,1)FlowLayout,构造方法,public FlowLayout(),构造一个新的,FlowLayout,,居中对齐,默认的水平和垂直间隙是,5,个单位。,public FlowLayout(int align),构造一个新的,FlowLayout,,对齐方式是指定的,默认的水平和垂直间隙是,5,个单位。,40,可整理ppt,6.1.9,布局管理器,2)FlowLayout,主要方法,public void setAlignment(int align),设置此布局的对齐方式。可能的值为:,FlowLayout.LEFT,、,FlowLayout.RIGHT,、,FlowLayout.CENTER,、,FlowLayout.LEADING,、,FlowLayout.TRAILING,。,参数:,align,上面所示的对齐值之一。,41,可整理ppt,6.1.9,布局管理器,2,边界线布局管理器,边界布局管理器,(,BorderLayout,),可以对容器中的组件进行排版,并自动调整其大小,使其符合下列,5,个区域:东、西、南、北、中。每个区域最多只能包含一个组件,并通过相应的常量进行标识:,NORTH,、,SOUTH,、,EAST,、,WEST,和,CENTER,,这,5,个常量是静态的,因此可以通过类名引用。,当使用边界布局管理器将一个组件添加到容器中时,要使用这,5,个常量之一,默认为,CENTER,。,42,可整理ppt,6.1.9,布局管理器,1)BorderLayout,构造方法,public BorderLayout(),构造一个组件之间没有间距的新边界布局。,public BorderLayout(int hgap,int vgap),用指定的组件之间的间距构造一个边界布局。水平间距由,hgap,指定,而垂直间距由,vgap,指定。,参数:,hgap,水平间距;,vgap,垂直间距。,43,可整理ppt,6.1.9,布局管理器,2)BorderLayout,示例,Panel p1=new Panel();,P1.setLayout(new BorderLayout();,P1.add(new Button(Okay),BorderLayout.SOUTH);,Panel p2=new Panel();,p2.setLayout(new BorderLayout();,p2.add(new TextArea();,44,可整理ppt,6.1.9,布局管理器,3,网格布局管理器,网格布局管理器,(,GridLayout,),以矩形网格的形式对容器内的组件进行摆放。容器被分成大小相等的规则矩形,一个矩形中放置一个组件。,45,可整理ppt,import java.awt.*;,import java.applet.Applet;,public class ButtonGrid extends Applet,public void init(),setLayout(new,GridLayout(2,3),);,add(new,Button,(1);,add(new Button(2);,add(new Button(3);,add(new Button(4);,add(new Button(5);,add(new,Button,(6);,6-6,将,6,个按钮布置到,2,行,3,列中,46,可整理ppt,6.1.9,布局管理器,知识点,1)GridLayout,构造方法,public GridLayout(int rows,int cols),创建具有指定行数和列数的网格布局。布局中的所有组件分配相同的大小空间。,rows,和,cols,中的一个可以为,0,(但不能两者同时为,0,),表示可以将任何数目的对象置于行或列中。,参数,:,rows,该,rows,具有表示任意行数的值,0,;,cols,该,cols,具有表示任意列数的值,0,。,47,可整理ppt,6.1.9,布局管理器,2)GridLayout,方法,public int getRows(),获取此布局中的行数。,public void setRows(int rows),将此布局中的行数设置为指定值。,public int getColumns(),获取此布局中的列数。,public void setColumns(int cols),将此布局中的列数设置为指定值。,48,可整理ppt,6.1.9,布局管理器,4,卡片布局管理器,卡片布局管理器,(,CardLayout,),将容器中的每个组件看作一张卡片。一次只能看到一张卡片,而容器则充当卡片的,堆栈,。容器的作用就像一叠卡片。当容器第一次显示时,第一个添加到,CardLayout,对象的组件为可见组件。,卡片的顺序由组件对象本身在容器内部的顺序决定。,CardLayout,定义了一组方法,这些方法允许应用程序按顺序浏览这些卡片,或者显示指定的卡片,49,可整理ppt,import java.awt.*;,import java.awt.event.*;,import javax.swing.*;,public class Card_Layout extends JPanel implements ActionListener,CardLayout,card=new CardLayout(30,30);,JButton button;,public Card_Layout(),setLayout(card);,for(int i=1;i=5;i+),button=new JButton(,卡片上第,+i+,个按钮,);/,按钮文本,例,6-7 CardLayout,应用示例,50,可整理ppt,add,(button,Card+i);/,按钮添加到卡片上,button.addActionListener(this);/,注册监听器,public void actionPerformed(ActionEvent e)/,事件处理,card.next(this);/,切换到下一张卡片,public static void main(String args),JFrame frame=new JFrame(CardLayout,应用示例,);,frame.setDefaultCloseOperation(JFrame.EXIT_ON_,CLOSE);,frame.getContentPane().add(new Card_Layout();,frame.setBounds(30,30,400,300);,frame.setLocationRelativeTo(null);,frame.setVisible(true);,51,可整理ppt,6.1.9,布局管理器,知识点,1)CardLayout,构造方法,public CardLayout(),创建一个间隙大小为,0,的新卡片布局。,public CardLayout(int hgap,int vgap),创建一个具有指定的水平和垂直间隙,(,距容器边缘,),的新卡片布局。水平间隙置于左右边缘。垂直间隙置于上下边缘。,参数:,hgap,水平间隙;,vgap,垂直间隙。,52,可整理ppt,6.1.9,布局管理器,2)CardLayout,方法,public void first(Container parent),翻转到容器的第一张卡片。,参数:,parent,要在其中进行布局的父容器。,public void next(Container parent),翻转到指定容器的下一张卡片。如果当前的可见卡片是最后一个,则此方法翻转到布局的第一张卡片。,参数:,parent,要在其中进行布局的父容器。,53,可整理ppt,6.1.9,布局管理器,public void previous(Container parent),翻转到指定容器的前一张卡片。如果当前的可见卡片是第一个,则此方法翻转到布局的最后一张卡片。,参数:,parent,要在其中进行布局的父容器。,public void last(Container parent),翻转到容器的最后一张卡片。,参数:,parent,要在其中进行布局的父容器。,54,可整理ppt,6.1.9,布局管理器,5,网格包布局管理器,网格包布局管理器,(GridBagLayout),是一个灵活的布局管理器,与,GridLayout,布局管理器不同之处是将组件垂直和水平对齐时不需要组件的大小相同。每个,GridBagLayout,对象维持一个将组件垂直和水平对齐的矩形单元网格,每个组件占用一个或多个这样的单元,称为显示区域。,每个由,GridBagLayout,管理的组件都与,GridBagConstraints,的实例相关联。,Constraints,对象指定组件在网格中的显示区域及其在显示区域中的放置方式。,55,可整理ppt,6.1.9,布局管理器,知识点,1)GridBagLayout,构造方法,public GridBagLayout(),创建网格包布局管理器。,2)GridBagConstraints,构造方法,public GridBagConstraints(),创建一个,GridBagConstraint,对象,将其所有字段都设置为默认值。,56,可整理ppt,6.1.10,下拉列表框组件,下拉列表框,(Choice),提供下拉列表,它可以看作是一个弹出式选择菜单。当前的选择显示
展开阅读全文