1. GUI:图形用户界面。它是Java提供的一种图形用户界面编程方式。

   AWT:抽象窗口工具集,是Sun公司在Java 1.0版本中提供一种最原始的图形界面类库。图形的元素委托给操作系统平台。

                    不同的操作系统平台下,图形元素的属性和行为会有差别。平台移植性很差。

   Swing:Java SE 后来的版本中,在AWT的基础上重新提供了一套新的国形界面类库。图形的元素全部用Java语言重新编写。

                     与具体的操作系统无关,移植性高。

   Swing并没有取代AWT,它只是在AWT的基础上进行修改,提供功能更强大的组件。

 

2. JFC:Java基础类库,它提供了一套对图形界面编程的包。包括:Swing的API、2D编程API、可插拨的观感API、国际化API等。

 

3. Swing的容器:可以存放其它组件的组件。

  a) 顶层容器:独立存在。

     javax.swing.JFrame:窗体。带标题栏和重置角标。默认是BorderLayout布局管理器。

                    常用方法:

void setTitle(String title);
              void setSize(int width, int height);
              void setLocation(int x, int y);
              void setBounds(int x, int y, int width, int height);
              void setResizable(boolean flag);
              void setDefaultCloseOperation(int i);
              void setVisible(boolean flag);
              void dispose();
              void setLayout(LayoutManager lm);
              Component add(Component comp);

 

     javax.swing.JDialog:对话框。

     javax.swing.JWindow:跟窗体几乎一样,只是不标题栏和重置角标。

  

  b) 通用容器:不能独立存在,需要存放到其它容器中。

     javax.swing.JPanel:面板。 默认是FlowLayout布局管理器。

                         常用方法跟JFrame类似。

 

4. 布局管理器:java.awt包有基本的,javax.swing有一些增强的。

  a) FlowLayout:流布局。对齐方式,水平间距和垂直间距。

  b) BorderLayout:边框布局。 北、东、南、西、中。水平间距和垂直间距。

  c) GridLayout:网格布局。把窗体分为几行几列。以行为准。

 

5. GUI的事件处理:

  a) 事件三要素:

              事件源:发生事件的组件。

              事件类型:用户对组件进行的操作。是哪一类型的事件。

              事件处理器:对事件作出响应,对事件进行处理的程序。

  b) 对组件注册事件监听器(XxxListener)。当该组件发生相应类型的事件时。

     JVM会创建一个事件(XxxEvent)对象,调用事件监听器中的处理方法(xxxPerformed),也叫回调方法。

  c) 事件类型、事件对象与及对应的事件监听器接口:

   动作Action--> ActionEvent --> ActionListener

   鼠标Mouse --> MouseEvent  --> MouseListener

   键盘Key   --> KeyEvent    --> KeyListener

   窗体Window--> WindowEvent --> WindowListener

 

6. Swing的组件。

  a) JLabel

  b) JButton

  c) JTextField

  d) JTextArea  ---> JScollPane

  e) JPasswordField

  f) JRadioButton --> ButtonGroup

  g) JCheckButton --> 复选

  h) JComboBox  特殊

  i) Border --> BorderFactory

  j) JOpetionPane  --> showMessageDialog();

  k) JFileChooser

  l) JScollBar

  m) JMenuBar, JMenu, JMenuItem, JCheckMeunItem, JRadioMenuItem, JPopupMenu