Ê×Ò³ >> µç×ÓÉÌÎñ´óѧ >> ÍøÕ¾½¨Éè°à >> NETÇø
 
µÚÎå½²¡¡AWTͼÐÎÓû§½çÃæÉè¼Æ



¿ÎǰË÷Òý

¡¾¿Îǰ˼¿¼¡¿
¡¡¡¡1£® javaÓïÑÔÊÇ¿çÆ½Ì¨µÄ±à³ÌÓïÑÔ£¬ÄÇôͼÐÎÓû§½çÃæÈçºÎ×öµ½¿çƽ̨£¿
¡¡¡¡2£® AWTÓÐÄÄЩ×é¼þºÍÈÝÆ÷£¿ËüÃǸ÷×ÔµÄʹÓ÷½·¨ÊÇʲô£¿
¡¡¡¡3£® AWTµÄʼþ´¦ÀíÄ£ÐÍÊÇʲô£¿Ô­ÀíÓÖÈçºÎ£¿
5£®1 ÓÃAWTÉú³ÉͼÐλ¯Óû§½çÃæ

³éÏó´°¿Ú¹¤¾ß°üAWT (Abstract Window Toolkit) ÊÇ APIΪJava ³ÌÐòÌṩµÄ½¨Á¢Í¼ÐÎÓû§½çÃæGUI (Graphics User Interface)¹¤¾ß¼¯£¬AWT¿ÉÓÃÓÚJavaµÄappletºÍapplicationsÖС£ËüÖ§³ÖͼÐÎÓû§½çÃæ±à³ÌµÄ¹¦ÄܰüÀ¨£º Óû§½çÃæ×é¼þ£»Ê¼þ´¦ÀíÄ£ÐÍ£»Í¼ÐκÍͼÏñ¹¤¾ß£¬°üÀ¨ÐÎ×´¡¢ÑÕÉ«ºÍ×ÖÌåÀࣻ²¼¾Ö¹ÜÀíÆ÷£¬¿ÉÒÔ½øÐÐÁé»îµÄ´°¿Ú²¼¾Ö¶øÓëÌØ¶¨´°¿ÚµÄ³ß´çºÍÆÁÄ»·Ö±æÂÊÎ޹أ»Êý¾Ý´«ËÍÀ࣬¿ÉÒÔͨ¹ý±¾µØÆ½Ì¨µÄ¼ôÌù°åÀ´½øÐмôÇкÍÕ³Ìù¡£

5.1.1 java.awt°ü

    java.awt°üÖÐÌṩÁËGUIÉè¼ÆËùʹÓõÄÀàºÍ½Ó¿Ú£¬¿É´Óͼ5.1Öп´µ½Ö÷ÒªÀàÖ®¼äµÄ¹ØÏµ¡£

java.awt°üÌṩÁË»ù±¾µÄjava³ÌÐòµÄGUIÉè¼Æ¹¤¾ß¡£Ö÷Òª°üÀ¨ÏÂÊöÈý¸ö¸ÅÄ
¡¡¡¡×é¼þ--Component
¡¡¡¡ÈÝÆ÷--Container
¡¡¡¡²¼¾Ö¹ÜÀíÆ÷--LayoutManager

5.1.2 ×é¼þºÍÈÝÆ÷

JavaµÄͼÐÎÓû§½çÃæµÄ×î»ù±¾×é³É²¿·ÖÊÇ×é¼þ£¨Component£©£¬×é¼þÊÇÒ»¸ö¿ÉÒÔÒÔͼÐλ¯µÄ·½Ê½ÏÔʾÔÚÆÁÄ»Éϲ¢ÄÜÓëÓû§½øÐн»»¥µÄ¶ÔÏó£¬ÀýÈçÒ»¸ö°´Å¥£¬Ò»¸ö±êÇ©µÈ¡£×é¼þ²»ÄܶÀÁ¢µØÏÔʾ³öÀ´£¬±ØÐ뽫×é¼þ·ÅÔÚÒ»¶¨µÄÈÝÆ÷ÖвſÉÒÔÏÔʾ³öÀ´¡£

Ààjava.awt.ComponentÊÇÐí¶à×é¼þÀàµÄ¸¸À࣬ComponentÀàÖзâ×°ÁË×é¼þͨÓõķ½·¨ºÍÊôÐÔ£¬ÈçͼÐεÄ×é¼þ¶ÔÏó¡¢´óС¡¢ÏÔʾλÖá¢Ç°¾°É«ºÍ±³¾°É«¡¢±ß½ç¡¢¿É¼ûÐԵȣ¬Òò´ËÐí¶à×é¼þÀàÒ²¾Í¼Ì³ÐÁËComponentÀàµÄ³ÉÔ±·½·¨ºÍ³ÉÔ±±äÁ¿£¬ÏàÓ¦µÄ³ÉÔ±·½·¨°üÀ¨£º
¡¡¡¡¡¡getComponentAt(int x, int y)
¡¡¡¡¡¡getFont()
¡¡¡¡¡¡getForeground()
¡¡¡¡¡¡getName()
¡¡¡¡¡¡getSize()
¡¡¡¡¡¡paint(Graphics g)
¡¡¡¡¡¡repaint()
¡¡¡¡¡¡update()
¡¡¡¡¡¡setVisible(boolean b)
¡¡¡¡¡¡setSize(Dimension d)
¡¡¡¡¡¡setName(String name)µÈ
¡¡¡¡¡¡¡¡ÈÝÆ÷(Container)Ò²ÊÇÒ»¸öÀ࣬ʵ¼ÊÉÏÊÇComponentµÄ×ÓÀ࣬Òò´ËÈÝÆ÷±¾ÉíÒ²ÊÇÒ»¸ö×é¼þ£¬¾ßÓÐ×é¼þµÄËùÓÐÐÔÖÊ£¬µ«ÊÇËüµÄÖ÷Òª¹¦ÄÜÊÇÈÝÄÉÆäËü×é¼þºÍÈÝÆ÷¡£
¡¡¡¡²¼¾Ö¹ÜÀíÆ÷£¨LayoutManager£©£ºÃ¿¸öÈÝÆ÷¶¼ÓÐÒ»¸ö²¼¾Ö¹ÜÀíÆ÷£¬µ±ÈÝÆ÷ÐèÒª¶Ôij¸ö×é¼þ½øÐж¨Î»»òÅÐ¶ÏÆä´óС³ß´çʱ£¬¾Í»áµ÷ÓÃÆä¶ÔÓ¦µÄ²¼¾Ö¹ÜÀíÆ÷¡£

ΪÁËʹÎÒÃÇÉú³ÉµÄͼÐÎÓû§½çÃæ¾ßÓÐÁ¼ºÃµÄƽ̨ÎÞ¹ØÐÔ£¬JavaÓïÑÔÖУ¬ÌṩÁ˲¼¾Ö¹ÜÀíÆ÷Õâ¸ö¹¤¾ßÀ´¹ÜÀí×é¼þÔÚÈÝÆ÷ÖеIJ¼¾Ö£¬¶ø²»Ê¹ÓÃÖ±½ÓÉèÖÃ×é¼þλÖúʹóСµÄ·½Ê½¡£

¡¡¡¡ÔÚ³ÌÐòÖа²ÅÅ×é¼þµÄλÖúʹóСʱ£¬Ó¦¸Ã×¢ÒâÒÔÏÂÁ½µã£º
¡¡¡¡1£®ÈÝÆ÷ÖеIJ¼¾Ö¹ÜÀíÆ÷¸ºÔð¸÷¸ö×é¼þµÄ´óСºÍλÖã¬Òò´ËÓû§ÎÞ·¨ÔÚÕâÖÖÇé¿öÏÂÉèÖÃ×é¼þµÄÕâЩÊôÐÔ¡£Èç¹ûÊÔͼʹÓÃJava ÓïÑÔÌṩµÄsetLocation()£¬setSize()£¬setBounds() µÈ·½·¨£¬Ôò¶¼»á±»²¼¾Ö¹ÜÀíÆ÷¸²¸Ç¡£

¡¡2£®Èç¹ûÓû§È·ÊµÐèÒªÇ××ÔÉèÖÃ×é¼þ´óС»òλÖã¬ÔòӦȡÏû¸ÃÈÝÆ÷µÄ²¼¾Ö¹ÜÀíÆ÷£¬·½·¨Îª£º
¡¡¡¡¡¡setLayout(null)£»

5.1.3 ³£ÓÃÈÝÆ÷

ÈÝÆ÷java.awt.ContainerÊÇComponentµÄ×ÓÀ࣬һ¸öÈÝÆ÷¿ÉÒÔÈÝÄɶà¸ö×é¼þ£¬²¢Ê¹ËüÃdzÉΪһ¸öÕûÌå¡£ÈÝÆ÷¿ÉÒÔ¼ò»¯Í¼Ðλ¯½çÃæµÄÉè¼Æ£¬ÒÔÕûÌå½á¹¹À´²¼ÖýçÃæ¡£ËùÓеÄÈÝÆ÷¶¼¿ÉÒÔͨ¹ýadd()·½·¨ÏòÈÝÆ÷ÖÐÌí¼Ó×é¼þ¡£ÓÐÈýÖÖÀàÐ͵ÄÈÝÆ÷£ºWindow¡¢Panel¡¢ScrollPane£¬³£ÓõÄÓÐPanel, Frame, Applet¡£

1£®Frame


   
Àý£º

import java.awt.*;
¡¡¡¡public class MyFrame extends Frame{
¡¡¡¡public static void main(String args[ ]){
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡MyFrame fr = new MyFrame("Hello Out There!");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¹¹Ôì·½·¨
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡fr.setSize(200,200);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//ÉèÖÃFrameµÄ´óС£¬È±Ê¡Îª£¨0£¬0£©
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡fr.setBackground(Color.red);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//ÉèÖÃFrameµÄ±³¾°£¬È±Ê¡ÎªºìÉ«
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡fr.setVisible(true);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//ÉèÖÃFrameΪ¿É¼û£¬È±Ê¡Îª²»¿É¼û
¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡public MyFrame (String str){
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡super(str); //µ÷Óø¸ÀàµÄ¹¹Ôì·½·¨
¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡}

Ò»°ãÎÒÃÇÒªÉú³ÉÒ»¸ö´°¿Ú£¬Í¨³£ÊÇÓÃWindowµÄ×ÓÀàFrameÀ´½øÐÐʵÀý»¯£¬¶ø²»ÊÇÖ±½ÓÓõ½WindowÀà¡£FrameµÄÍâ¹Û¾ÍÏñÎÒÃÇÆ½³£ÔÚwindowsϵͳϼûµ½µÄ´°¿Ú£¬ÓбêÌâ¡¢±ß¿ò¡¢²Ëµ¥¡¢´óСµÈµÈ¡£Ã¿¸öFrameµÄ¶ÔÏóʵÀý»¯ÒԺ󣬶¼ÊÇûÓдóСºÍ²»¿É¼ûµÄ£¬Òò´Ë±ØÐëµ÷ÓÃsetSize( )À´ÉèÖôóС£¬µ÷ÓÃsetVisible(true)À´ÉèÖøô°¿ÚΪ¿É¼ûµÄ¡£
¡¡¡¡ÁíÍ⣬AWTÔÚʵ¼ÊµÄÔËÐйý³ÌÖÐÊǵ÷ÓÃËùÔÚÆ½Ì¨µÄͼÐÎϵͳ£¬Òò´ËͬÑùÒ»¶ÎAWT³ÌÐòÔÚ²»Í¬µÄ²Ù×÷ϵͳƽ̨ÏÂÔËÐÐËù¿´µ½µÄͼÐÎϵͳÊDz»Ò»ÑùµÄ¡£ÀýÈçÔÚwindowsÏÂÔËÐУ¬ÔòÏÔʾµÄ´°¿ÚÊÇwindows·ç¸ñµÄ´°¿Ú£»¶øÔÚUNIXÏÂÔËÐÐʱ£¬ÔòÏÔʾµÄÊÇUNIX·ç¸ñµÄ´°¿Ú¡£

2£®Panel

PanelÓëFrameÀàËÆ£¬¿ÉÒÔÌí¼Óµ½FrameÖС£

5.1.4 LayoutManager ²¼¾Ö¹ÜÀíÆ÷(1)

javaΪÁËʵÏÖ¿çÆ½Ì¨µÄÌØÐÔ²¢ÇÒ»ñµÃ¶¯Ì¬µÄ²¼¾ÖЧ¹û£¬java½«ÈÝÆ÷ÄÚµÄËùÓÐ×é¼þ°²ÅŸøÒ»¸ö"²¼¾Ö¹ÜÀíÆ÷"¸ºÔð¹ÜÀí£¬È磺ÅÅÁÐ˳Ðò£¬×é¼þµÄ´óС¡¢Î»Ö㬵±´°¿ÚÒÆ¶¯»òµ÷Õû´óСºó×é¼þÈçºÎ±ä»¯µÈ¹¦ÄÜÊÚȨ¸ø¶ÔÓ¦µÄÈÝÆ÷²¼¾Ö¹ÜÀíÆ÷À´¹ÜÀí£¬²»Í¬µÄ²¼¾Ö¹ÜÀíÆ÷ʹÓò»Í¬Ëã·¨ºÍ²ßÂÔ£¬ÈÝÆ÷¿ÉÒÔͨ¹ýÑ¡Ôñ²»Í¬µÄ²¼¾Ö¹ÜÀíÆ÷À´¾ö¶¨²¼¾Ö¡£

²¼¾Ö¹ÜÀíÆ÷Ö÷Òª°üÀ¨£ºFlowLayout£¬BorderLayout£¬GridLayout£¬CardLayout£¬GridBagLayout£º

1. FlowLayout
¡¡¡¡FlowLayout ÊÇPanel£¬AppletµÄȱʡ²¼¾Ö¹ÜÀíÆ÷¡£Æä×é¼þµÄ·ÅÖùæÂÉÊÇ´ÓÉϵ½Ï¡¢´Ó×óµ½ÓÒ½øÐзÅÖã¬Èç¹ûÈÝÆ÷×ã¹»¿í£¬µÚÒ»¸ö×é¼þÏÈÌí¼Óµ½ÈÝÆ÷ÖеÚÒ»ÐеÄ×î×ó±ß£¬ºóÐøµÄ×é¼þÒÀ´ÎÌí¼Óµ½ÉÏÒ»¸ö×é¼þµÄÓұߣ¬Èç¹ûµ±Ç°ÐÐÒÑ·ÅÖò»Ï¸Ã×é¼þ£¬Ôò·ÅÖõ½ÏÂÒ»ÐеÄ×î×ó±ß¡£

µ±ÈÝÆ÷µÄ´óС·¢Éú±ä»¯Ê±£¬ÓÃFlowLayout¹ÜÀíµÄ×é¼þ»á·¢Éú±ä»¯£¬Æä±ä»¯¹æÂÉÊÇ£º×é¼þµÄ´óС²»±ä£¬µ«ÊÇÏà¶ÔλÖûᷢÉú±ä»¯¡£ÀýÈçÉÏͼÖÐÓÐÈý¸ö°´Å¥¶¼´¦ÓÚͬһÐУ¬µ«ÊÇÈç¹û°Ñ¸Ã´°¿Ú±äÕ­£¬Õ­µ½¸ÕºÃÄܹ»·ÅÏÂÒ»¸ö°´Å¥£¬ÔòµÚ¶þ¸ö°´Å¥½«ÕÛµ½µÚ¶þÐУ¬µÚÈý¸ö°´Å¥½«ÕÛµ½µÚÈýÐС£°´Å¥"Open"±¾À´ÔÚ°´Å¥"OK"µÄÓұߣ¬µ«ÊÇÏÖÔÚÅܵ½ÁËÏÂÃæ£¬ËùÒÔ˵"×é¼þµÄ´óС²»±ä£¬µ«ÊÇÏà¶ÔλÖûᷢÉú±ä»¯"¡£
¡¡¡¡¹¹Ôì·½·¨Ö÷ÒªÏÂÃæ¼¸ÖÖ£º
¡¡¡¡FlowLayout(FlowLayout.RIGHT,20,40);
¡¡¡¡/*µÚÒ»¸ö²ÎÊý±íʾ×é¼þµÄ¶ÔÆë·½Ê½£¬Ö¸×é¼þÔÚÕâÒ»ÐÐÖеÄλÖÃÊǾÓÖÐ¶ÔÆë¡¢¾ÓÓÒ¶ÔÆë»¹ÊǾÓ×ó¶ÔÆë£¬µÚ¶þ¸ö²ÎÊýÊÇ×é¼þÖ®¼äµÄºáÏò¼ä¸ô£¬µÚÈý¸ö²ÎÊýÊÇ×é¼þÖ®¼äµÄ×ÝÏò¼ä¸ô£¬µ¥Î»ÊÇÏóËØ¡£*/
¡¡¡¡FlowLayout(FlowLayout.LEFT);
¡¡¡¡//¾Ó×ó¶ÔÆë£¬ºáÏò¼ä¸ôºÍ×ÝÏò¼ä¸ô¶¼ÊÇȱʡֵ5¸öÏóËØ
¡¡¡¡FlowLayout();
¡¡¡¡//ȱʡµÄ¶ÔÆë·½Ê½¾ÓÖÐ¶ÔÆë£¬ºáÏò¼ä¸ôºÍ×ÝÏò¼ä¸ô¶¼ÊÇȱʡֵ5¸öÏóËØ

Àý£º

Frame f = new Frame();
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡f.setLayout(new FlowLayout());
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡f.add(new Button("Ok"));
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡f.add(new Button("Open"));
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡f.add(new Button("Close"));
¡¡2. BorderLayout
¡¡¡¡BorderLayout ÊÇWindow£¬FrameºÍDialogµÄȱʡ²¼¾Ö¹ÜÀíÆ÷¡£BorderLayout²¼¾Ö¹ÜÀíÆ÷°ÑÈÝÆ÷·Ö³É5¸öÇøÓò£ºNorth£¬South£¬East£¬WestºÍCenter£¬Ã¿¸öÇøÓòÖ»ÄÜ·ÅÖÃÒ»¸ö×é¼þ¡£¸÷¸öÇøÓòµÄλÖü°´óСÈçÏÂͼËùʾ£º

f.setLayout(new BorderLayout());
¡¡¡¡¡¡¡¡¡¡¡¡f.add("North", new Button("North"));
¡¡¡¡¡¡¡¡¡¡¡¡//µÚÒ»¸ö²ÎÊý±íʾ°Ñ°´Å¥Ìí¼Óµ½ÈÝÆ÷µÄNorthÇøÓò

ÔÚʹÓÃBorderLayoutµÄʱºò£¬Èç¹ûÈÝÆ÷µÄ´óС·¢Éú±ä»¯£¬Æä±ä»¯¹æÂÉΪ£º×é¼þµÄÏà¶ÔλÖò»±ä£¬´óС·¢Éú±ä»¯¡£ÀýÈçÈÝÆ÷±ä¸ßÁË£¬ÔòNorth¡¢SouthÇøÓò²»±ä£¬West¡¢Center¡¢EastÇøÓò±ä¸ß£»Èç¹ûÈÝÆ÷±ä¿íÁË£¬West¡¢EastÇøÓò²»±ä£¬North¡¢Center¡¢SouthÇøÓò±ä¿í¡£²»Ò»¶¨ËùÓеÄÇøÓò¶¼ÓÐ×é¼þ£¬Èç¹ûËÄÖܵÄÇøÓò£¨West¡¢East¡¢North¡¢SouthÇøÓò£©Ã»ÓÐ×é¼þ£¬ÔòÓÉCenterÇøÓòÈ¥²¹³ä£¬µ«ÊÇÈç¹ûCenterÇøÓòûÓÐ×é¼þ£¬Ôò±£³Ö¿Õ°×£º

NorthºÍCenterÇøÓòȱÉÙ×é¼þ

3. GridLayout
¡¡¡¡Ê¹ÈÝÆ÷Öи÷¸ö×é¼þ³ÊÍø¸ñ×´²¼¾Ö£¬Æ½¾ùÕ¼¾ÝÈÝÆ÷µÄ¿Õ¼ä¡£

Frame f = new Frame("GridLayout");
¡¡¡¡¡¡¡¡¡¡¡¡f.setLayout(new GridLayout(3,2));  //ÈÝÆ÷ƽ¾ù·Ö³É3ÐÐ2Áй²6¸ñ
¡¡¡¡¡¡¡¡¡¡¡¡f.add(new Button("1")); //Ìí¼Óµ½µÚÒ»ÐеĵÚÒ»¸ñ
¡¡¡¡¡¡¡¡¡¡¡¡f.add(new Button("2")); //Ìí¼Óµ½µÚÒ»ÐеÄÏÂÒ»¸ñ
¡¡¡¡¡¡¡¡¡¡¡¡f.add(new Button("3")); //Ìí¼Óµ½µÚ¶þÐеĵÚÒ»¸ñ

4. CardLayout
¡¡¡¡CardLayout²¼¾Ö¹ÜÀíÆ÷Äܹ»°ïÖúÓû§´¦ÀíÁ½¸öÒÔÖÁ¸ü¶àµÄ³ÉÔ±¹²ÏíͬһÏÔʾ¿Õ¼ä£¬Ëü°ÑÈÝÆ÷·Ö³ÉÐí¶à²ã£¬Ã¿²ãµÄÏÔʾ¿Õ¼äÕ¼¾ÝÕû¸öÈÝÆ÷µÄ´óС£¬µ«ÊÇÿ²ãÖ»ÔÊÐí·ÅÖÃÒ»¸ö×é¼þ£¬µ±È»Ã¿²ã¶¼¿ÉÒÔÀûÓÃPanelÀ´ÊµÏÖ¸´ÔÓµÄÓû§½çÃæ¡£ÅƲ¼¾Ö¹ÜÀíÆ÷£¨CardLayout£©¾ÍÏóÒ»¸±µþµÃÕûÕûÆëÆëµÄÆË¿ËÅÆÒ»Ñù£¬ÓÐ54ÕÅÅÆ£¬µ«ÊÇÄãÖ»ÄÜ¿´¼û×îÉÏÃæµÄÒ»ÕÅÅÆ£¬Ã¿Ò»ÕÅÅÆ¾ÍÏ൱ÓÚÅÆ²¼¾Ö¹ÜÀíÆ÷ÖеÄÿһ²ã¡£

5£®ÈÝÆ÷µÄǶÌ×
¡¡¡¡ÔÚ¸´ÔÓµÄͼÐÎÓû§½çÃæÉè¼ÆÖУ¬ÎªÁËʹ²¼¾Ö¸ü¼ÓÒ×ÓÚ¹ÜÀí£¬¾ßÓмò½àµÄÕûÌå·ç¸ñ£¬Ò»¸ö°üº¬Á˶à¸ö×é¼þµÄÈÝÆ÷±¾ÉíÒ²¿ÉÒÔ×÷Ϊһ¸ö×é¼þ¼Óµ½ÁíÒ»¸öÈÝÆ÷ÖÐÈ¥£¬ÈÝÆ÷ÖÐÔÙÌí¼ÓÈÝÆ÷£¬ÕâÑù¾ÍÐγÉÁËÈÝÆ÷µÄǶÌס£ÏÂÃæÊÇÒ»¸öÈÝÆ÷ǶÌ×µÄÀý×Ó¡£

Àý£º         f = new Frame("GUI example 3");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡bw=new Button("West");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡bc=new Button("Work space region");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡f.add(bw,"West");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡f.add(bc,"Center");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡p = new Panel();
¡¡¡¡¡¡¡¡¡¡¡¡¡¡f.add(p,"North");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡bfile= new Button("File");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡bhelp= new Button("Help");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡p.add(bfile);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡p.add(bhelp);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡f.pack();
¡¡¡¡¡¡¡¡¡¡¡¡¡¡f.setVisible(true);

С ½á£º
¡¡¡¡¡¡1£®FrameÊÇÒ»¸ö¶¥¼¶´°¿Ú¡£FrameµÄȱʡ²¼¾Ö¹ÜÀíÆ÷ΪBorderLayout¡£
¡¡¡¡¡¡2£®Panel ÎÞ·¨µ¥¶ÀÏÔʾ£¬±ØÐëÌí¼Óµ½Ä³¸öÈÝÆ÷ÖС£ Panel µÄȱʡ²¼¾Ö¹ÜÀíÆ÷ΪFlowLayout¡£
¡¡¡¡¡¡3£®µ±°ÑPanel ×÷Ϊһ¸ö×é¼þÌí¼Óµ½Ä³¸öÈÝÆ÷Öк󣬸ÃPanel ÈÔÈ»¿ÉÒÔÓÐ×Ô¼ºµÄ²¼¾Ö¹ÜÀíÆ÷¡£Òò´Ë£¬¿ÉÒÔÀûÓÃPanel ʹµÃBorderLayout ÖÐij¸öÇøÓòÏÔʾ¶à¸ö×é¼þ£¬´ïµ½Éè¼Æ¸´ÔÓÓû§½çÃæµÄÄ¿µÄ ¡£
¡¡¡¡¡¡4£®Èç¹û²ÉÓÃÎÞ²¼¾Ö¹ÜÀíÆ÷ setLayout(null)£¬Ôò±ØÐëʹÓÃsetLocation(),setSize(),setBounds()µÈ·½·¨ÊÖ¹¤ÉèÖÃ×é¼þµÄ´óСºÍλÖ㬴˷½·¨»áµ¼ÖÂÆ½Ì¨Ïà¹Ø£¬²»¹ÄÀøÊ¹Óá£

5£®2 AWTʼþ´¦ÀíÄ£ÐÍ
 
ÒªÄܹ»ÈÃͼÐνçÃæ½ÓÊÕÓû§µÄ²Ù×÷£¬¾Í±ØÐë¸ø¸÷¸ö×é¼þ¼ÓÉÏʼþ´¦Àí»úÖÆ¡£ÔÚʼþ´¦ÀíµÄ¹ý³ÌÖУ¬Ö÷񻃾¼°ÈýÀà¶ÔÏó£º

¡ó Event-ʼþ£¬Óû§¶Ô½çÃæ²Ù×÷ÔÚjavaÓïÑÔÉϵÄÃèÊö£¬ÒÔÀàµÄÐÎʽ³öÏÖ£¬ÀýÈç¼üÅ̲Ù×÷¶ÔÓ¦µÄʼþÀàÊÇKeyEvent¡£
¡¡¡¡¡ó Event Source-ʼþÔ´£¬Ê¼þ·¢ÉúµÄ³¡Ëù£¬Í¨³£¾ÍÊǸ÷¸ö×é¼þ£¬ÀýÈç°´Å¥Button¡£
¡¡¡¡¡ó Event handler-ʼþ´¦ÀíÕߣ¬½ÓÊÕʼþ¶ÔÏó²¢¶ÔÆä½øÐд¦ÀíµÄ¶ÔÏó¡£

ÓÉÓÚͬһ¸öʼþÔ´ÉÏ¿ÉÄÜ·¢Éú¶àÖÖʼþ£¬Òò´Ëjava²ÉÈ¡ÁËÊÚȨ´¦Àí»úÖÆ(Delegation Model)£¬Ê¼þÔ´¿ÉÒÔ°ÑÔÚÆä×ÔÉíËùÓпÉÄÜ·¢ÉúµÄʼþ·Ö±ðÊÚȨ¸ø²»Í¬µÄʼþ´¦ÀíÕßÀ´´¦Àí¡£±ÈÈçÔÚCanvas¶ÔÏóÉϼȿÉÄÜ·¢ÉúÊó±êʼþ£¬Ò²¿ÉÄÜ·¢Éú¼üÅÌʼþ£¬¸ÃCanvas¶ÔÏó¾Í¿ÉÒÔÊÚȨ¸øÊ¼þ´¦ÀíÕßÒ»À´´¦ÀíÊó±êʼþ£¬Í¬Ê±ÊÚȨ¸øÊ¼þ´¦ÀíÕß¶þÀ´´¦Àí¼üÅÌʼþ¡£ÓÐʱҲ½«Ê¼þ´¦ÀíÕß³ÆÎª¼àÌýÆ÷£¬Ö÷ÒªÔ­ÒòÒ²ÔÚÓÚ¼àÌýÆ÷ʱ¿Ì¼àÌý×ÅʼþÔ´ÉÏËùÓз¢ÉúµÄʼþÀàÐÍ£¬Ò»µ©¸ÃʼþÀàÐÍÓë×Ô¼ºËù¸ºÔð´¦ÀíµÄʼþÀàÐÍÒ»Ö£¬¾ÍÂíÉϽøÐд¦Àí¡£ÊÚȨģÐͰÑʼþµÄ´¦ÀíίÍиøÍⲿµÄ´¦ÀíʵÌå½øÐд¦Àí£¬ÊµÏÖÁ˽«Ê¼þÔ´ºÍ¼àÌýÆ÷·Ö¿ªµÄ»úÖÆ¡£Ê¼þ´¦ÀíÕߣ¨¼àÌýÆ÷£©Í¨³£ÊÇÒ»¸öÀ࣬¸ÃÀàÈç¹ûÒªÄܹ»´¦ÀíijÖÖÀàÐ͵Äʼþ£¬¾Í±ØÐëʵÏÖÓë¸ÃʼþÀàÐÍÏà¶ÔµÄ½Ó¿Ú¡£ÀýÈçÀý5.9ÖÐÀàButtonHandlerÖ®ËùÒÔÄܹ»´¦ÀíActionEventʼþ£¬Ô­ÒòÔÚÓÚËüʵÏÖÁËÓëActionEventʼþ¶ÔÓ¦µÄ½Ó¿ÚActionListener¡£Ã¿¸öʼþÀà¶¼ÓÐÒ»¸öÓëÖ®Ïà¶ÔÓ¦µÄ½Ó¿Ú¡£
¡¡¡¡½«Ê¼þÔ´¶ÔÏóºÍʼþ´¦ÀíÆ÷£¨Ê¼þ¼àÌýÆ÷£©·Ö¿ª¡£Èçͼ5.2Ëùʾ

Àý5.9
¡¡¡¡¡¡¡¡import java.awt.*;
¡¡¡¡¡¡¡¡import java.awt.event.*;
¡¡¡¡¡¡¡¡public class TestButton {
¡¡¡¡¡¡¡¡public static void main(String args[])
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡Frame f = new Frame("Test");
¡¡¡¡¡¡¡¡¡¡¡¡Button b = new Button("Press Me!");
¡¡¡¡¡¡¡¡¡¡¡¡b.addActionListener(new ButtonHandler());
/*×¢²á¼àÌýÆ÷½øÐÐÊÚȨ£¬¸Ã·½·¨µÄ²ÎÊýÊÇʼþ´¦ÀíÕß¶ÔÏó£¬Òª´¦ÀíµÄʼþÀàÐÍ¿ÉÒÔ´Ó·½·¨ÃûÖп´³ö£¬ÀýÈç±¾·½·¨ÒªÊÚȨ´¦ÀíµÄÊÇActionEvent£¬ÒòΪ·½·¨ÃûÊÇaddActionListener¡£*/
¡¡¡¡¡¡¡¡¡¡¡¡f.setLayout(new FlowLayout());
//ÉèÖò¼¾Ö¹ÜÀíÆ÷
¡¡¡¡¡¡¡¡¡¡¡¡f.add(b);
¡¡¡¡¡¡¡¡¡¡¡¡f.setSize(200,100);
¡¡¡¡¡¡¡¡¡¡¡¡f.setVisible(true);
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡}

¡¡¡¡class ButtonHandler implements ActionListener {
¡¡¡¡¡¡¡¡//ʵÏÖ½Ó¿ÚActionListener²ÅÄÜ×öʼþActionEventµÄ´¦ÀíÕß

¡¡¡¡¡¡¡¡public void actionPerformed(ActionEvent e)

¡¡¡¡¡¡¡¡//ϵͳ²úÉúµÄActionEventʼþ¶ÔÏó±»µ±×÷²ÎÊý´«µÝ¸ø¸Ã·½·¨

¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡System.out.println("Action occurred");

¡¡¡¡¡¡¡¡//±¾½Ó¿ÚÖ»ÓÐÒ»¸ö·½·¨£¬Òò´Ëʼþ·¢Éúʱ£¬ÏµÍ³»á×Ô¶¯µ÷Óñ¾·½·¨£¬ÐèÒª×öµÄ²Ù×÷¾Í°Ñ´úÂëдÔÚÔò¸ö·½·¨Àï¡£

¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡}

ʹÓÃÊÚȨ´¦ÀíÄ£ÐͽøÐÐʼþ´¦ÀíµÄÒ»°ã·½·¨¹éÄÉÈçÏ£º
¡¡¡¡1£®¶ÔÓÚijÖÖÀàÐ͵ÄʼþXXXEvent, ÒªÏë½ÓÊÕ²¢´¦ÀíÕâÀàʼþ£¬±ØÐ붨ÒåÏàÓ¦µÄʼþ¼àÌýÆ÷À࣬¸ÃÀàÐèҪʵÏÖÓë¸ÃʼþÏà¶ÔÓ¦µÄ½Ó¿ÚXXXListener£»
¡¡¡¡2£®Ê¼þԴʵÀý»¯ÒԺ󣬱ØÐë½øÐÐÊÚȨ£¬×¢²á¸ÃÀàʼþµÄ¼àÌýÆ÷£¬Ê¹ÓÃaddXXXListener(XXXListener ) ·½·¨À´×¢²á¼àÌýÆ÷¡£

5.2.1 ʼþÀà
¡¡¡¡ÓëAWTÓйصÄËùÓÐʼþÀà¶¼ÓÉjava.awt.AWTEventÀàÅÉÉú,ËüÒ²ÊÇEventObjectÀàµÄ×ÓÀà¡£AWTʼþ¹²ÓÐ10À࣬¿ÉÒÔ¹éΪÁ½´óÀࣺµÍ¼¶Ê¼þºÍ¸ß¼¶Ê¼þ¡£

java.util.EventObjectÀàÊÇËùÓÐʼþ¶ÔÏóµÄ»ù´¡¸¸À࣬ËùÓÐʼþ¶¼ÊÇÓÉËüÅÉÉú³öÀ´µÄ¡£AWTµÄÏà¹ØÊ¼þ¼Ì³ÐÓÚjava.awt.AWTEventÀ࣬ÕâЩAWTʼþ·ÖΪÁ½´óÀࣺµÍ¼¶Ê¼þºÍ¸ß¼¶Ê¼þ£¬µÍ¼¶Ê¼þÊÇÖ¸»ùÓÚ×é¼þºÍÈÝÆ÷µÄʼþ£¬µ±Ò»¸ö×é¼þÉÏ·¢Éúʼþ£¬È磺Êó±êµÄ½øÈ룬µã»÷£¬ÍϷŵȣ¬»ò×é¼þµÄ´°¿Ú¿ª¹ØµÈ£¬´¥·¢ÁË×é¼þʼþ¡£¸ß¼¶Ê¼þÊÇ»ùÓÚÓïÒåµÄʼþ£¬Ëü¿ÉÒÔ²»ºÍÌØ¶¨µÄ¶¯×÷Ïà¹ØÁª£¬¶øÒÀÀµÓÚ´¥·¢´ËʼþµÄÀ࣬ÈçÔÚTextFieldÖа´Enter¼ü»á´¥·¢ActionEventʼþ,»¬¶¯¹ö¶¯Ìõ»á´¥·¢AdjustmentEventʼþ£¬»òÊÇÑ¡ÖÐÏîÄ¿ÁбíµÄijһÌõ¾Í»á´¥·¢ItemEventʼþ¡£
¡¡¡¡¡ó µÍ¼¶Ê¼þ
¡¡¡¡ComponentEvent£¨ ×é¼þʼþ£º×é¼þ³ß´çµÄ±ä»¯£¬Òƶ¯£©
¡¡¡¡ContainerEvent£¨ ÈÝÆ÷ʼþ£º×é¼þÔö¼Ó£¬Òƶ¯£©
¡¡¡¡WindowEvent£¨ ´°¿Úʼþ£º¹Ø±Õ´°¿Ú£¬´°¿Ú±ÕºÏ£¬Í¼±ê»¯£©
¡¡¡¡FocusEvent£¨ ½¹µãʼþ£º½¹µãµÄ»ñµÃºÍ¶ªÊ§£©
¡¡¡¡KeyEvent£¨ ¼üÅÌʼþ£º¼ü°´Ï¡¢ÊÍ·Å£©
¡¡¡¡MouseEvent£¨ Êó±êʼþ£ºÊó±êµ¥»÷£¬Òƶ¯£©

¡¡¡¡¡ó ¸ß¼¶Ê¼þ£¨ÓïÒåʼþ£©
¡¡¡¡ActionEvent£¨¶¯×÷ʼþ£º°´Å¥°´Ï£¬TextFieldÖа´Enter¼ü£©
¡¡¡¡AdjustmentEvent£¨µ÷½Úʼþ£ºÔÚ¹ö¶¯ÌõÉÏÒÆ¶¯»¬¿éÒÔµ÷½ÚÊýÖµ£©
¡¡¡¡ItemEvent£¨ÏîĿʼþ£ºÑ¡ÔñÏîÄ¿£¬²»Ñ¡Ôñ"ÏîÄ¿¸Ä±ä"£©
¡¡¡¡TextEvent£¨Îı¾Ê¼þ£¬Îı¾¶ÔÏó¸Ä±ä£©

5.2.2 ʼþ¼àÌýÆ÷
¡¡¡¡Ã¿Ààʼþ¶¼ÓжÔÓ¦µÄʼþ¼àÌýÆ÷£¬¼àÌýÆ÷Êǽӿڣ¬¸ù¾Ý¶¯×÷À´¶¨Òå·½·¨¡£

AWTµÄ×é¼þÀàÖÐÌṩע²áºÍ×¢Ïú¼àÌýÆ÷µÄ·½·¨£º
¡¡¡¡¡ó ×¢²á¼àÌýÆ÷£º
¡¡¡¡public void add<ListenerType> (<ListenerType>listener);
¡¡¡¡¡ó ×¢Ïú¼àÌýÆ÷£º
¡¡¡¡public void remove<ListenerType> (<ListenerType>listener);

¡¡¡¡ÀýÈçButtonÀࣺ£¨²éAPI£©
¡¡¡¡public class Button extends Component {
¡¡¡¡¡¡¡¡¡¡……
¡¡¡¡¡¡¡¡¡¡public synchronized void addActionListener(ActionListener l);
¡¡¡¡¡¡¡¡¡¡public synchronized void removeActionListener(ActionListener l);
¡¡¡¡¡¡¡¡¡¡……}

5.2.3 AWTʼþ¼°ÆäÏàÓ¦µÄ¼àÌýÆ÷½Ó¿Ú(1)
¡¡¡¡±í5.1ÁгöÁËËùÓÐAWTʼþ¼°ÆäÏàÓ¦µÄ¼àÌýÆ÷½Ó¿Ú£¬Ò»¹²10Ààʼþ£¬11¸ö½Ó¿Ú¡£ÏÂÃæÕâÕűíÓ¦ÄÜÀÎÀμÇס¡£

±í5.1

ʼþÀà±ð

ÃèÊöÐÅÏ¢

½Ó¿ÚÃû

·½·¨

¡¡ActionEvent

¼¤»î×é¼þ

¡¡¡¡ActionListener

¡¡actionPerformed(ActionEvent)

¡¡ItemEvent

Ñ¡ÔñÁËijЩÏîÄ¿

¡¡¡¡ItemListener

¡¡itemStateChanged(ItemEvent)

¡¡MouseEvent

Êó±êÒÆ¶¯

¡¡¡¡MouseMotionListener

¡¡mouseDragged(MouseEvent)
¡¡mouseMoved(MouseEvent)

Êó±êµã»÷µÈ

¡¡¡¡MouseListener

¡¡mousePressed(MouseEvent)
¡¡mouseReleased(MouseEvent)
¡¡mouseEntered(MouseEvent)
¡¡mouseExited(MouseEvent)
¡¡mouseClicked(MouseEvent)

¡¡KeyEvent

¼üÅÌÊäÈë

¡¡¡¡KeyListener

¡¡keyPressed(KeyEvent)
¡¡keyReleased(KeyEvent)
¡¡keyTyped(KeyEvent)

¡¡FocusEvent

×é¼þÊÕµ½»òʧȥ½¹µã

¡¡¡¡FocusListener

¡¡focusGained(FocusEvent)
¡¡focusLost(FocusEvent)

¡¡AdjustmentEvent

ÒÆ¶¯Á˹ö¶¯ÌõµÈ×é¼þ

¡¡¡¡AdjustmentListener

¡¡adjustmentValueChanged(AdjustmentEvent)

¡¡ComponentEvent

¶ÔÏóÒÆ¶¯Ëõ·ÅÏÔʾÒþ²ØµÈ

¡¡¡