收藏 分享(赏)

javaswing教桉.ppt

上传人:gsy285395 文档编号:4529149 上传时间:2019-01-02 格式:PPT 页数:191 大小:1.17MB
下载 相关 举报
javaswing教桉.ppt_第1页
第1页 / 共191页
javaswing教桉.ppt_第2页
第2页 / 共191页
javaswing教桉.ppt_第3页
第3页 / 共191页
javaswing教桉.ppt_第4页
第4页 / 共191页
javaswing教桉.ppt_第5页
第5页 / 共191页
点击查看更多>>
资源描述

1、教学重点与难点:,框架的组成及外观 在框架中显示文本和图形 字体和颜色的设置 Java的事件处理机制 窗口事件、焦点事件、键盘事件、鼠标事件的处理 Swing各种组件的用法,Java1.0的出现带来了抽象窗口工具箱(AWT)。设计目标是希望构建一个通用的GUI,使得利用它编写的程序能够运行在所有的平台上,以实现Sun公司提出的口号“一次编写,随处运行”。 在Java1.2中,Sun公司推出了新的用户界面库:Swing。相对AWT来说,Swing功能更强大、使用更方便,它的出现使得Java的图形用户界面上了一个台阶。 但是,Swing并没有代替AWT。在Java1.1中,AWT事件处理模型有了根

2、本改变。Swing使用的仍然是Java1.1的事件处理模型。,9.1.1 GUI支持包和简单GUI程序例 1.java.awt包 Java语言在java.awt包中提供了大量地进行GUI设计所使用的类和接口,包括绘制图形、设置字体和颜色、控制组件、处理事件等内容,AWT是Java语言进行GUI程序设计的基础。 2. javax.swing包 Swing包是Java基础类库(Java Foundation Classes,JFC)的一部分。Swing提供了从按钮到可分拆面板和表格的所有组件。,Swing组件是Java语言提供的第二代GUI设计工具包,它以AWT为基础,在AWT内容的基础上新增或改

3、进了一些GUI组件,使得GUI程序功能更强大,设计更容易、更方便。“Swing“是开发新组件的项目代码名,现在,这个名字常用来引用新组件和相关的API。 AWT组件和对应的Swing组件,从名称上很容易记忆和区别。例如,AWT的框架类、面板类、按钮类和菜单类,被命名为Frame、Panel、Button和Menu,而Swing对应的组件类被命名为JFrame、JPanel、JButton和JMenu。与AWT组件相比,Swing组件的名前多一个 “J” 字母。另外,AWT 组件在java.awt包中,而Swing组件在javax.swing包中。,简单图形用户界面,第一个图形用户界面,在Jav

4、a中,顶层窗口称为框架。在AWT库中,对应于框架的类是Frame,在Swing库中,相应的类是JFrame。JFrame类扩展了Frame类。大部分AWT组件在Swing中都有等价的组件,它们在表示形式上差一个“J”。 框架是一个容器,我们可以在这个容器中放入其他一些图形用户界面组件,如按钮、菜单等,从而组成一个功能完善的程序。,【例】 显示一个空框架 import javax.swing.*;public class FirstFrame public static void main(String args) SimpleFrame frame = new SimpleFrame();/设

5、置用户关闭框架时的响应动作 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/显示该框架/frame.show(); 已过时frame.setVisible(true); class SimpleFrame extends JFrame public SimpleFrame()/设置框架大小setSize(WIDTH, HEIGHT);public static final int WIDTH = 300;public static final int HEIGHT = 200; ,运行结果,【例】 显示一个带标题框架 import j

6、ava.awt.*; import java.awt.event.*; import javax.swing.*; public class ch9_1 extends JFrame public ch9_1()/标题super(“我的第一个JFrame窗口“);/设置大小和位置setBounds(20,20,500,300);/点击关闭按钮可以关闭窗口addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););/*/第二种方法 点击关闭按钮可以关闭窗口setDefa

7、ultCloseOperation(JFrame.EXIT_ON_CLOSE);*/public static void main(String args)ch9_1 f=new ch9_1();f.show(); ,运行结果,JFrame的继承结构,JFrame类的继承层次图,java.lang.Object java.awt.Component java.awt.Container java.awt.Window java.awt.Frame javax.swing.JFrame,类 JFrame,frame 是带有标题和边界的顶层窗口,frame 的大小包括边界指定的所有区域,frame

8、 的默认布局为 BorderLayout。 如前所述,与AWT组件不同,Swing组件不直接添加到顶层容器中,它必须添加到一个与Swing顶层容器相关联的内容面板上。对JFrame添加组件有两种方式:,类 JFrame,(1)使用getContentPane( )方法获得JFrame的内容面板,再对其加入组件:frame.getContentPane().add(childComponent);其中“childComponent”为基本组件。(2)构造一个Jpanel或 JDesktopPane之类的中间容器,把组件添加到容器中,用setContentPane()方法把该容器置为JFrame的

9、内容面板:Jpanel pnlMain=new Jpanel( );/构造一个面板为中间容器/把其它组件添加到Jpanel中;frame.setContentPane(pnlMain);/把contentPane对象设置成为frame的内容面板,构造方法,JFrame() 构造一个初始时不可见的新窗体。JFrame(String title) 创建一个新的、初始不可见的、具有指定标题的 Frame。,方法,getContentPane() 返回此窗体的 contentPane 对象(内容面板,组件要添加到此) getJMenuBar() 返回此窗体上设置的菜单栏。 setDefaultLook

10、AndFeelDecorated(boolean defaultLookAndFeelDecorated) 提供一个关于新创建的 JFrame 是否应该具有当前外观为其提供的 Window 装饰(如边框、关闭窗口的小部件、标题等等)的提示。 setIconImage(Image image) 设置要作为此窗口图标显示的图像。,方法,setJMenuBar(JMenuBar menubar) 设置此窗体的菜单栏。 其他继承的方法(和awt的frame一样) public void setBounds(int a,intb,int width,int heigth) public void set

11、Size(int width,int heigth) public void setLocation(int x,int y) public void setVisible(boolean b) public void setResizable(boolean b)/是否允许调大小 jFrame.setUndecorated(true); / 这样就可以去掉Jframe中对window的装饰了,无标题栏,练习1建立一个有标题可以关闭的JFrame(ch9_1.java),import java.awt.*; import java.awt.event.*; import javax.swing

12、.*; public class ch9_1 extends JFrame public ch9_1()/标题super(“我的第一个JFrame窗口“);/设置大小和位置setBounds(20,20,500,300);/点击关闭按钮可以关闭窗口addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););/*/第二种方法 点击关闭按钮可以关闭窗口setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);*/public stati

13、c void main(String args)ch9_1 f=new ch9_1();f.show(); ,练习2建立一个带有左上角图标的窗口(ch9_2.java),import javax.swing.*; import javax.swing.ImageIcon.*; public class ch9_2 extends JFrame public ch9_2()/标题super(“测试图标“);/设置大小和位置setBounds(20,20,500,300);/点击关闭按钮可以关闭窗口setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/加入

14、图标ImageIcon icon=new ImageIcon(“icon.jpg“);setIconImage(icon.getImage();public static void main(String args)ch9_2 f=new ch9_2();f.show(); ,练习3建立一个没有最大化按钮的窗口(ch9_3.java),import javax.swing.*; public class ch9_3 extends JFrame public ch9_3()/标题super(“测试图标“);/设置大小和位置setBounds(20,20,500,300);/点击关闭按钮可以关闭

15、窗口setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/去掉最大化按钮setResizable(false);public static void main(String args)ch9_3 f=new ch9_3();f.show(); ,练习4去掉窗口的标题栏(ch9_4.java),import javax.swing.*; public class ch9_4 extends JFrame public ch9_4()/标题super(“测试图标“);/设置大小和位置setBounds(20,20,500,300);/点击关闭按钮可以关闭窗

16、口setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/设置外观setUndecorated(true);/这句可以禁用最小化、最大化、关闭按钮,并且令窗体连边界也没有public static void main(String args)ch9_4 f=new ch9_4();f.show(); ,swing的版面结构,每个使用Swing组件的程序至少是在一个顶层容器之上的。顶层容器是整个GUI程序的层次结构中处于根的位置。 注:JApplet是基于Swing的applet中使用的顶层容器。 通过顶层容器可以得到一个内容面板(ContentPane)

17、对象,用来放置图形组件。frame.getContentPane().add(yellowLabel, BorderLayout.CENTER); 图形界面上的组件都是加载到这个面板上才得以显示的。contentPane.add(someComponent, BorderLayout.CENTER);,swing的版面结构,观察一下你常看到的windows系统中的软件,从理论上讲,每个软件的界面上都应该有一个菜单栏。在Swing中我们通常是把JMenuBar对象加载到顶层容器中。frame.setJMenuBar(greenMenuBar); 顶层容器包含一个透明的中间容器,叫做root面板。

18、这个面板管理内容面板和菜单栏,在内容面板上面我们还可以放置其他子面板,在面板上放置其他图形组件。它们的层次结构关系如下图所示:,swing的版面结构,swing的版面结构,RootPaneContainer这个界面(Interface),此界面定义了各种容器取得与设置并不是真实的容器,它是由Glass Pane与Layered Pane所组成(Layered Pane里拥有Content Pane与Menu Bar,而Menu Bar可选择使用或不使用),我们不能在JRootPane上加入任何的组件,因为它只是一个虚拟的容器,若要在最上层组件上加入组件,必须加在Layered Pane或是La

19、yered Pane里的Content Pane上。以JFrame为例,一般我们要在JFrame上加入其他组件(如JButton、JLabel等)必须先取得JFrame的Content Pane,然后将要加入的组件放在此Content Pane中,而不是直接就加到JFrame上。因此若要在JFrame中加入一个按钮,一般要先取得JFrame的Content Pane,然后将按钮加入Content Pane中,如: frame.getContentPane().add(button),Component类是所有GUI对象的祖先,Window类是Frame类的父类,JFrame类直接从Frame继

20、承而来。对于框架外观的操作比较重要的方法如下: setIconImage(Image image) 窗口最小化(在Java中称为图标化)时,把一个Image对象用作图标。 setTitle(String title) 设置窗口中标题栏的文字。 setResizable(boolean resizable) 设置用户是否可以改变框架大小。 dispose方法销毁窗口,并回收该窗口的所有资源。 setLocation设置组件的位置。 setBounds(int x, int y, int width, int height) 重新设置组件的大小和位置。 pack() 调整此窗口的大小,以适合其子组

21、件的首选大小和布局 setCursor(Cursor cursor) 设置指定光标的光标图像。 setSize(int width, int height) setVisible(boolean b) 显示或隐藏,hide已过时 toFront() 如果此窗口是可见的,则将此窗口置于前端,并可以将其设为焦点 Window。 setUndecorated(true) 没有标题栏 JFrame.setDefaultLookAndFeelDecorated(true);/具有swing观感,见mainFrame1.java,【例】 创建一个swing外观的并居中的窗体 import javax.sw

22、ing.*; import java.awt.*; public class mainFrame extends JFrame /*方法说明:构造器,通过传递参数来完成窗体的绘制。*输入参数:String sTitle 窗体标题*输入参数:int iWidth 窗体的宽度*输入参数:int iHeight 窗体的高度 *返回类型:*/public mainFrame(String sTitle,int iWidth,int iHeight)Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();/获取屏幕尺寸ImageIcon i

23、i = new ImageIcon(“images/middle.gif“);setTitle(sTitle);/设置窗体标题setIconImage(ii.getImage();/设置窗体的图标setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);/设置但关闭窗体时退出程序setSize(iWidth,iHeight);/设置窗体大小int w = getSize().width;/获取窗体宽度int h = getSize().height;/获取窗体高度System.out.println(“窗体宽:“+w+“ 窗体高:“+h);int x

24、= (dim.width-w)/2;int y = (dim.height-h)/2;setLocation(x,y);/将窗体移到屏幕中间setVisible(true);/显示窗体public static void main(String args)JFrame.setDefaultLookAndFeelDecorated(true);/使用最新的SWING外观mainFrame mF = new mainFrame(“main Frame Demo“,400,300); ,运行结果,上机操作 框架外观的设置 设置具有以下特征的框架: 它的高度和宽度为整个屏幕的1/3;居中显示窗体 自定

25、义窗口的标题和图标; 窗口的大小不可变。 也要设置swing外观,图标,标题,最大化按钮失效,一个Java GUI简单程序 【例】一个简单的Swing GUI应用程序。在一个框架窗口中显示两个标签和一个按钮:上面的标签显示一串固定的文字信息,选择按钮后在下面的标签上显示系统现在的时间。 import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; / 继承JFrame类并实现ActionListener接口 public class SwingDemo extends JFrame i

26、mplementsActionListenerJButton b1; / 声明按钮对象JLabel l1,l2; / 声明标签对象,SwingDemo() / 定义构造方法super(“Swing应用程序的例“);/ 调用父类的构造方法l1=new JLabel(“一个GUI应用程序的例子“,JLabel.CENTER); / 定义标签,文字居中l2=new JLabel(“ “); / 定义无文字标签b1=new JButton(“现在时间T“);/ 定义按钮b1.setMnemonic(KeyEvent.VK_T);/ 设置按钮的快捷键b1.setActionCommand(“time“)

27、; / 设置控制名b1.addActionListener(this); / 注册按钮事件getContentPane().add(l1,BorderLayout.NORTH); / 添加标签l1getContentPane().add(l2,BorderLayout.CENTER); / 添加标签l2getContentPane().add(b1,BorderLayout.SOUTH); / 添加标签b1,/ 对按钮引发事件编程public void actionPerformed(ActionEvent e)/ 捕获按钮事件Calendar c1 = Calendar.getInstanc

28、e();/ 获取系统日期和时间if(e.getActionCommand().equals(“time“)/ 判断是否为所需的按钮事件l2.setText(“现在时间是”+c1.get(Calendar.HOUR_OF_DAY)+“时”+c1.get(Calendar.MINUTE)+“分”);/设置标签文字l2.setHorizontalAlignment(JLabel.CENTER);/ 设置标签标签文字居中对齐,else System.exit(0);public static void main(String args)/ 主方法JFrame.setDefaultLookAndFeel

29、Decorated(true);/ 加此语句显示为运行结果图的右图 JFrame frame = new SwingDemo();/ 创建JFrame对象,初始不可见frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 设置框架关闭按钮事件frame.pack(); / 压缩框架的显示区域frame.setVisible(true); / 显示框架主窗口 ,程序运行后显示的形式如下图 。Java Swing GUI应用程序中的基本代码如下。 (1)引入合适的包和类 一般的Swing GUI应用程序应包含程序中的前三个引入语句,它们分别表示

30、引入awt包、awt事件处理包和swing包。其他包按需引入。,由于Swing组件使用AWT的结构,包括AWT的事件驱动模式,所以,使用swing组件的程序一般需要使用awt包。 (2)使用缺省的观感或设置自己的观感(Look and Feel) (3)设置一个顶层的容器 (4)根据需要,使用缺省的布局管理器或设置另外的布局管理器 (5)定义组件并将它们添加到容器 (6)对组件或事件编码,9.1.2 容器、组件、布局和观感 1.容器(Container)和组件(Component) 一个Java的图形用户界面的最基本元素是组件,组件是可以以图形化的方式显示在屏幕上并能与用户进行交互的对象,如一

31、个按钮、一个文本框等。在Java语言中,通常将组件放在一定的容器内使用。容器实际上是一种具有容纳其他组件和容器的功能的组件。抽象类Container是所有容器的父类,其中包含了很多有关容器的功能和方法。而类Container又是Java语言的组件类Component的子类。,2.布局管理器(Layout Manager) 为了使得图形用户界面具有良好的平台无关性,在Java语言中提供了布局管理器这个工具来管理组件在容器中的布局,而不使用直接设置组件位置和大小的方式。容器中的组件定位由布局管理器决定。每个容器都有一个缺省的布局管理器,当容器需要对某个组件进行定位或判断其大小尺寸时,就会调用其相应

32、的布局管理器。但也可以不用缺省的布局管理器,在程序中指定其新的布局管理器。 Java平台提供多种布局管理器,常用的有FlowLayout、BorderLayout、 GridLayout、CardLayout、BoxLayout和GridBagLayout等。使用不同的布局管理器,组件在容器上的位置和大小都是很不一样的。,在程序中安排组件的位置和大小时,应该注意: (1)容器中的布局管理器负责各个组件的大小和位置。因此用户无法在这种情况下直接设置这些属性。若试图使用Java语言提供的setLocation()、setSize()、setBounds()等方法,则都会被布局管理器覆盖。 (2)若

33、用户确实需要亲自设置组件的位置和大小,则应取消该容器的布局管理器,方法为:setLayout(null); 随后,用户必须使用setLocation()、setSize()、setBounds()等方法为组件设置大小和位置,但这种方法将会导致程序的系统相关。 在一个GUI应用程序的界面上,除了可以见到上述的标准GUI元素外,还可以见到一些非交互的起到装饰、美化界面的作用的几何图形、图案、图像等内容。,9.1.3事件处理 在一个GUI程序中,为了能够接收用户的输入、命令的按键和鼠标操作,程序系统首先应该能够识别这些操作并做出相应的响应。通常一个键盘和鼠标操作将引发一个系统预先定义好的事件,用户程

34、序只要编写代码定义每个事件发生时程序应做出何种响应即可。这些代码会在它们对应的事件发生时由系统自动调用,这就是GUI程序中事件和事件响应的基本原理。,可能产生事件的组件称为事件源,不同事件源上发生的事件种类是不同的。若希望事件源上引发的事件被程序处理,需要将事件源注册给能够处理该事件源上那种事件类型的监听器。监听器具有监听和处理某类事件的功能,它可以是包容事件源的容器,也可以是另外的对象。也就是说,事件源和事件处理是分开的,一般组件都不处理自己的事件,而将事件处理委托给外部的处理实体,这种事件处理模型称为授权处理模型。 事件的行为多种多样,由不同的监听器处理。编写事件处理程序首先应确定关注的事

35、件属于何种监听器类型。,在AWT中,提供标准的监听器类型,见下表。监听器 适配器类 注册方法 ActionListener addActionListener AdjustmentListener addAdjustmentListener FocusListener FocusAdapter addFocusListener ItemListener addItemListener KeyListener KeyAdapter addKeyListener MouseListener MouseAdapter addMouseListener MouseMotionListener Mous

36、eMotionAdapter addMouseMotionListener TextListener addTextListener WindowListener WindowAdapter addWindowListener,在确定监听器类型后,要用事件源类的注册方法来注册一个监听器类的对象。这样,事件源产生的事件会传送给已注册的处理该类事件的监听器对象,该对象将自动调用相应的事件处理方法来处理该事件。具体的注册方法是:用监听器类的对象作为参数调用事件源本身的addXxxListener()方法。该方法的参数是一个监听器类的对象,有多种形式。例如: (1)分离的监听器类,该类通常为继承相应事

37、件适配器类的子类,类中包含了事件处理方法。参数是该类的一个对象。 (2)实现监听器接口,参数为this,表示本对象就是一个监听器类的对象。在本类中包含事件处理方法。 (3)有名内部类,参数形式为继承事件适配器类的子类对象,在子类中包含事件处理方法。 (4)匿名内部类,参数形式为用new开始的一个无名的类定义。其中包含事件处理方法。,9.2布局管理器,在容器中所有组件的布局(位置和大小)由布局管理器来控制。在Java语言中提供了FlowLayout、BorderLayout、GridLayout、CardLayout和GridBagLayout等多种布局管理器。 每种容器都有自己缺省的布局管理器

38、。缺省使用FlowLayout,如果不希望使用缺省的布局管理器,则可使用所有容器的父类Container的setLayout()方法来改变缺省的布局管理器。,版面管理器(Layout Menager),AWT的布局模式: BorderLayout FlowLayout GridLayout CardLayout GridBagLayout Swing扩充的布局模式:BoxLayout,FlowLayout布局模式,构造函数: FlowLayout()建立一个新的Flow Layout,此FlowLayout默认值是居中对齐,组件彼此有5单位的水平与垂直间距。 FlowLayout(int al

39、ign)建立一个新的Flow Layout,此FlowLayout可设置排列方式,组件彼此有5单位的水平与垂直 间距。 FlowLayout的排列方式, 依次是CENTER(默认值), LEFT,RIGHT等。,FlowLayout布局模式,FlowLayout(int align,int hgap,int vgap)建立一个新的Flow Layout,此FlowLayout可设置排列方式与组件的水平与垂直间距。 例如: FlowLayout(FlowLayout.LEFT,20,20); /左对齐,间距为20个单位,FlowLayout()布局模式:ch9_50.java,import ja

40、vax.swing.*; import java.awt.*; import java.awt.event.*; public class ch9_50 extends JFrame public ch9_50()/标题super(“布局模式“);/设置大小和位置setBounds(20,20,500,300);/点击关闭按钮可以关闭窗口setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);,FlowLayout()布局模式:ch9_50.java,public static void main(String args)ch9_50 f=new ch9_

41、50();/为设置FlowLayout布局模式f.getContentPane().setLayout(new FlowLayout();/建立一个按钮JButton jb1=new JButton(“确定“);/建立一个按钮JButton jb2=new JButton(“取消“);/把按钮加入到窗体上f.getContentPane().add(jb1);f.getContentPane().add(jb2);f.setVisible(true); ,FlowLayout布局模式:,/设置FlowLayout布局模式/f.getContentPane().setLayout(new Flo

42、wLayout();/默认居中/f.getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT);/f.getContentPane().setLayout(new FlowLayout(FlowLayout.RIGHT);/f.getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT,20,20);,BorderLayout布局模式:,版面划分为东、西、南、北、中 构造函数: BorderLayout()建立一个没有间距的 BorderLayout(int hgap,int vg

43、ap)建立一个组件间有间距的布局,BorderLayout布局模式:ch9_51,import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ch9_51 extends JFrame public ch9_51()/标题super(“布局模式“);/设置大小和位置setBounds(20,20,500,300);/点击关闭按钮可以关闭窗口setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);,BorderLayout布局模式:ch9_51,public s

44、tatic void main(String args)ch9_51 f=new ch9_51();Container contentPane=f.getContentPane();/设置BorderLayout布局模式/contentPane.setLayout(new BorderLayout();contentPane.setLayout(new BorderLayout(10,20);contentPane.add(new JButton(“EAST“),BorderLayout.EAST);contentPane.add(new JButton(“WEST“),BorderLayou

45、t.WEST);contentPane.add(new JButton(“SOUTH“),BorderLayout.SOUTH);contentPane.add(new JButton(“NORTH“),BorderLayout.NORTH);contentPane.add(new JButton(“CENTER“),BorderLayout.CENTER);/contentPane.add(new JLabel(“CENTER“,JLabel.CENTER),BorderLayout.CENTER);f.setVisible(true); ,GridLayout布局模式:,GridLayou

46、t比FlowLayout多了行和列的设置,也就是说你要先设置GridLayout共有几行几列,就如同二维平面一般,然后你加 进去的组件会先填第一行的格子,然后再从第二行开始填,依此类扒,就像是一个个的格子一般。而且GridLayout会将所填进去组 件的大小设为一样。,GridLayout布局模式:,构造函数: GridLayout()建立一个新的GridLayout,默认值是1行1列。 GridLayout(int rows,int cols)建立一个几行几列的GridLayout. GridLayout(int rows,int cols, int hgap,int vgap)建立一个几行

47、几列的GridLayout,并设置组件的间距。,GridLayout布局模式:ch9_52,import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ch9_52 extends JFrame public ch9_52()/标题super(“布局模式“);/设置大小和位置setBounds(20,20,500,300);/点击关闭按钮可以关闭窗口setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);,GridLayout布局模式:ch9_52,publi

48、c static void main(String args)ch9_52 f=new ch9_52();Container contentPane=f.getContentPane();/设置GridLayout布局模式contentPane.setLayout(new GridLayout(4,5);for (int i=1;i=4;i+)for (int j=1;j=5;j+)contentPane.add(new JButton(i+“行“+j+“列“);f.setVisible(true); ,CardLayout布局模式:,它将容器中的每个组件看作一张卡片。一次只能看到一张卡片,容器则充当卡片的堆栈。当容器第一次显示时,第一个添加到 CardLayout 对象的组件为可见组件。 构造方法 CardLayout() 创建一个间距大小为 0 的新卡片布局。CardLayout(int hgap, int vgap) 创建一个具有指定水平间距和垂直间距的和容器各边的新卡片布局。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > Java

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报