java.awt包提供了基本的java程序的GUI设计工具。主要包括下述三个概念:

  • 组件--Component
  • 容器--Container
  • 布局管理器--LayoutManager

组件

组件(Conponent)是图形用户界面最基本的部分,也称为构件,是可以以图形化的方式显示在屏幕上,并能与用户进行交互的对象,例如一个按钮,一个标签等。组件不能独立地显示出来,必须将其放在一定的容器中才可以显示。 类java.awt.Component是许多组件类的父类,Component类中封装了组件通用的方法和属性,如图形的组件对象、大小、显示位置、前景色和背景色、边界、可见性等。

javax.swing使用总结-LMLPHP

 

容器

容器(Container)也是一个类,实际上是Component的子类,因此容器本身也是一个组件,具有组件的所有性质,但是它的主要功能是容纳其它组件和容器。容器可以简化图形化界面的设计,以整体结构来布置界面。所有的容器都可以通过add()方法向容器中添加组件。常用的容器3种:Panel, Frame, Applet。

框架(Frame)

构造方法:

JFrame frame = new JFrame()

生成一个窗口,框架的外观就像平常Windows系统下的窗口,有标题、边框菜单和大小等。setSize()方法可以设置框架尺寸的大小,setVisibe()方法可以设置窗口的可见性

         frame.setSize(300,300);
         frame.setVisible(true);

JFrame常见用法:

setExtendedState(JFrame.MAXIMIZED_BOTH);//界面显示最大化

setUndecorated(true); // 去掉窗口的装饰,删除标题栏
getRootPane().setWindowDecorationStyle(JRootPane.NONE);//采用指定的窗口装饰风格

getRootPane().setWindowDecorationStyle()方法为窗口指定以下的装饰风格:

   NONE                                      无装饰(即去掉标题栏)
   FRAME                                     普通窗口风格
   PLAIN_DIALOG                        简单对话框风格
   INFORMATION_DIALOG           信息对话框风格
   ERROR_DIALOG                       错误对话框风格
   COLOR_CHOOSER_DIALOG     拾色器对话框风格
   FILE_CHOOSER_DIALOG         文件选择对话框风格
   QUESTION_DIALOG                 问题对话框风格
   WARNING_DIALOG                  警告对话框风格

setMinimumSize(new   Dimension(500,400));//设置窗口最小的界面

setMaximumSize(new   Dimension(500,400));//设置窗口最大的界面

setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);//设置关闭按钮事件

setIconImage(Toolkit.getDefaultToolkit().createImage("pic.jpg"));//设置标题栏上左上角的图标

JFrame添加组件:

JFrame 有一个 Content Pane,窗口能显示的所有组件都是添加在这个 Content Pane 中。JFrame 提供了两个方法:getContentPane 和 setContentPane 就是用于获取和设置其 Content Pane 的。

对JFrame添加组件有两种方式:


1)用getContentPane()方法获得JFrame的内容面板,再对其加入组件:

frame.getContentPane().add(childComponent)


2)建立一个Jpanel或JDesktopPane之类的中间容器,把组件添加到容器中,用setContentPane()方法把该容器置为JFrame的内容面板:

JFrame jf = new JFrame("myJFrame");


JPanel jp = new JPanel();//把其它组件添加到Jpanel中;


jf.setContentPane(jp);//把contentPane对象设置成为frame的内容面板

面板(Panel)

构造方法:

面板是一种透明的容器,没有标题和边框。与Frame 不同,Panel不能作为最外层的容器单独存在,它首先必须作为一个组件放置在其他容器(一般为Frame)中,然后把组件添加到它里面。在java.swing中则是JPanel

小程序(Applet)

构造方法:

框架一般用作Java应用程序的窗口,而Applet是Java小程序的窗口。与Frame不同,Applet是在网页中显示的,也可以通过添加Panel进行组件布局。

布局管理器

布局管理器(LayoutManager):每个容器都有一个布局管理器,当容器需要对某个组件进行定位或判断其大小、尺寸时,就会调用其对应的布局管理器。使用布局管理器可以实现跨平台的特性,并且获得动态的布局效果。布局管理器负责管理组件的排列顺序、大小和位置。不同的布局管理器使用不同的布局策略,容器可以通过选择不同的布局管理器来决定如何布局。

流布局管理器(FlowLayout)

FlowLayout是Panel 和 Applet 的默认布局管理器。在该布局管理器中,组件在容器中按照从上到下,从左到右的顺序进行排列,行满后则换行。

构造方法较多,例如:

  • FlowLayout();默认构造方法,设置居中对齐方式,横向和纵向间隔均为默认5像素
  • FlowLayout(FlowLayout.LEFT);设置居左对齐,横向和纵向间隔均为默认5像素
  • FlowLayout(FlowLayout.RIGHT,20,40);设置居右对齐,横向间隔20像素,纵向间隔40像

界布局管理器(BorderLayout)

构造方法:

BorderLayout是Window、Frame和Dialog的默认布局管理器,其将容器分成North、South、East、West和Center 5个区域,每个区域只能放置一个组件。在使用add()方法添加组件到容器时,必须指定将其放置在哪个区域中。使用BorderLayout时,如果容器大小发生变换,组件的相对位置不变。

网格布局管理器(GridLayout)

构造方法:

GridLayout 可使容器中的各个组件呈网格状布局,平局占据容器的空间,即使容器的大小发生变化,每个组件还是平均占据容器的空间。和FlowLayout一样,GridLayout也是按照从上到下,从左到右的规律进行排列的。

卡片布局管理器(CardLayout)

构造方法:

CardLayout能够帮助用户处理两个乃至跟多的成员共享同一显示空间。它把容器分成许多层,每层的显示空间占据整个容器的大小,并且每层之允许反之一个组件,可以通过Panel来实现每层复杂的用户界面。

10-06 15:04