程序7-4 mainO方法 import java. awt. 在这个例子中,main()方法有两个 Import javax. swing 作用。首先,它创建了一个 EXGui 类的实例,在这个实例创建之前 并没有实际可用的b1和b2数据项 public class ExGui 其次,当ExGu实例创建好以后 private JFrame frame;/main又调用了该实例的go(方 private JButton b1 法,在这个方法中,程序的实际功 private JButton b2 能得以实现。 public static void main( String argsi ExGui that -=new ExGuiO that goo
程序7-4 import java.awt.*; import javax.swing.*; public class ExGui { private JFrame frame; private JButton b1; private JButton b2; public static void main(String args[]){ ExGui that = new ExGui(); that.go(); } main()方法 在这个例子中,main()方法有两个 作用。首先,它创建了一个ExGui 类的实例,在这个实例创建之前, 并没有实际可用的b1和b2数据项。 其次,当ExGui实例创建好以后, main()又调用了该实例的go()方 法,在这个方法中,程序的实际功 能得以实现
程序7-4 /public void goO frame= new JFrame(" GUI example"),∥创建一个 Jframe实例 Container co/otPane= frame. getContentPaneO;/获取内容窗格 new Jframe £ rome noel∩ 这条语句的 frame set Visit 实例。Jr这条语句的 GUI example 三x 有标题框包含的组件 型参数“(组件虽然已 Press me Don t press Me 改变大小来,只有调 时, FRam ayout()方法 杀语句的功能是创建 面已经获得的 Javax: swing. JButton类的一个实例,该容窗格。 实例是窗口中的标准按钮( button), 按钮上的标签由构造方法中 String型参数 “ Press me"指定
程序7-4 public void go() { frame = new JFrame ("GUI example"); //创建一个JFrame实例 Container contentPane = frame.getContentPane(); //获取内容窗格 //为内容窗格设置FlowLayout布局管理器 contentPane.setLayout(new FlowLayout()); b1 = new JButton("Press me"); //创建JButton实例 b2 = new JButton("Don't press Me"); contentPane.add(b1); //添加按钮 contentPane.add(b2); frame.pack(); frame.setVisible(true); } } new JFrame(“GUI example”) 这条语句的功能是创建JFrame类的一个 实例。JFrame 是一个顶层级窗口,它带 有标题框(标题由构造方法中的String 型参数“GUI example” 指定)并且可以 改变大小。需要注意的是,在刚刚创建 时,JFrame的大小为0,并且不可见。 frame.getContentPane() 这条语句获取JFrame实例 缺省的内容窗格,此后可以 修改它的布局管理器,并添 加组件。 contentPane.setLayout(new FlowLayout()) 这条语句创建了一个FlowLayout型的布 局管理器,并通过调用setLayout()方法 将该布局管理器指定给前面已经获得的 JFrame实例的缺省内容窗格。 new JButton(“Press Me”) 这条语句的功能是创建 javax.swing.JButton类的一个实例,该 实例是窗口中的标准按钮(button), 按钮上的标签由构造方法中String型参数 “Press Me”指定。 frame.pack() 这条语句通知框架frame设定一个适当 的大小,以便能够以“紧缩”的形式包 容各个组件。为了做到这一点,frame 需要通知布局管理器,由布局管理器安 排每个组件的大小和位置。 frame.setVisible(true) 这条语句的功能是使得框架frame以及它所 包含的组件对用户可见,在此之前,框架和 组件虽然已经创建好了,但是并没有显示出 来,只有调用了setVisible(true)方法后, 它们才变为可见
FlowLayout布局 管理器 FlowLayout定义在 java. awt包中,它对容 器中组件进行布局的方式是将组件逐个地 安放在容器中的一行上 放满后就另 起一个新行。在缺省情况下,将组件居中 放置在容器的某一行上 FlowLayout布局管理器并不强行设定组件 的大小,而是允许组件拥有它们自已所希 望的尺寸 每个组件都有一个 getPreferredSize(方法, 布局管理器会调用这一方法取得每个组件希望 的大小
FlowLayout布局 管理器 ▪ FlowLayout定义在java.awt包中,它对容 器中组件进行布局的方式是将组件逐个地 安放在容器中的一行上,一行放满后就另 起一个新行。在缺省情况下,将组件居中 放置在容器的某一行上 ▪ FlowLayout布局管理器并不强行设定组件 的大小,而是允许组件拥有它们自己所希 望的尺寸 ▪ 每个组件都有一个getPreferredSize()方法, 布局管理器会调用这一方法取得每个组件希望 的大小