2012年计算机二级Java容器组件学习教程

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论

第8章 Swing组件

  在第7章中,介绍了用AWT创建图形用户界面的基本原理。在java.awt包中,提供了各种具体的组件,如Frame、Panel、Button、Label等。AWT组件的优点是简单、稳定,同时兼容于任何JDK版本,缺点是依赖于本地操作系统的GUI,缺乏平台的独立性。为了实现跨平台,使得用java创建的图形界面在不同操作系统中保持相同的外观,从JKD1.2版本开始引入了Swing组件,这些组件位于javax.swing包中, Swing GUI组件定义了相对于java.awt包更多、更强的功能,可以使用户更加灵活方便的进行GUI的设计。

  Swing组件时用纯Java语言编写的,不依赖于本地操作系统的GUI,Swing组件可以跨平台运行。独立于本地平台的Swing组件被称为轻量级组件,而依赖于本地平台的AWT组件被称为重量级组件。

  多数Swing组件的父类为javax.swing.JComponent,JComponent 的直接父类为java.awt.Container,与AWT中的Window与Panel处于同一个继承类层次。多数Swing组件类都是以大写字母“J”开头,图8-1显示了Swing组件的类层次结构。从图中可以看出,除JFrame外,其余的Swing组件都继承自JComponent类。

图8-1 Swing组件的类层次结构

8.1 容器组件

  8.1.1 JFrame

  JFrame是用来替代AWT包中Frame的,可以实现与Frame相同的功能,包括作为容器容纳其他组件,显示组件等。

  [例8-1]

  import javax.swing.*;

  import java.awt.*;

  class JFrameTest extends JFrame{

  private JButton button1 = new JButton("button1");

  private JButton button2 = new JButton("button2");

  public JFrameTest(String title){

  super(title);//设置标题

  this.setBounds(50,50,200,150);

  //获得与JFrame关联的contentPane,contentPane默认的布局管理器是BorderLayout

  Container contentPane = this.getContentPane();

  contentPane.setLayout(new FlowLayout(5));

  contentPane.add(button1);

  contentPane.add(button2);

  this.setVisible(true);

  //设置JFrame对关闭按钮的处理方式

  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  }

  }

  public class Test8_1 {

  public static void main(String[] args) {

  new JFrameTest("JFrame测试");

  }

  }

  程序运行界面如下:

图8-2 例8-1运行界面

  利用JFrame实现了与Frame相同的功能,但JFrame与Frame在使用上还是有很大区别的。

  (1)两者都可以添加其他组件到窗口中,Frame直接使用add方法添加相应的组件;JFrame则不能直接通过add方法添加组件,每个JFrame都有一个与之关联的内容面板(contentPane),只能针对这个contentPane添加相应组件。

  (2)两者都可以设置布局管理器,Frame直接使用setLayout即可设置;JFrame则需先得到其内容面板,对其内容面板设置布局管理器。

  (3)Frame要想关闭窗口需要编写相应的事件处理程序(见例7-12),而JFrame则不必编写事件处理程序,只需调用方法setDefaultCloseOperation(int operation),通过设置operation的值来响应用户关闭窗体的操作,该方法的参数operation的值有以下三个。

  JFrame.DO_NOTHING_ON_CLOS:什么也不做

  JFrame.HIDE_ON_CLOSE:隐藏窗体,这是JFrame的默认选项

  JFrame.EXIT_ON_CLOSE:关闭窗体,结束程序

  8.1.2 Jpanel

  JPanel是使用最多的组件之一,它是AWT中Panel的替代组件。其默认的布局管理器是FlowLayout布局管理器。

  利用JPanel可以实现更为复杂的布局,如BorderLayout布局管理策略,只允许添加5个组件,那么我们可以在5个区域中添加5个JPanel,而每个JPanel又可以根据不同的布局管理策略添加多个组件,只要你愿意,可以添加任意多个你想添加的组件。时

上一页12下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答