15 AWT 事件

1AWT(Abstract Window Toolkit),抽象窗口工具集,第一代的Java GUI组件,是重量级的。

Swing,不依赖于底层细节,轻量级的组件。

2基本的AWT库处理用户界面元素的方法是把这些元素的创建和行为委托给每个目标平台上(Windows、Unix、Macintosh等)的本地GUI工具进行处理。例如:如果我们使用AWT在一个Java窗口中放置一个按钮,那么实际上使用的是一个具有本地外观和感觉的按钮。这样,从理论上来说,我们所编写的图形界面程序能运行在任何平台上,做到了图形界面程序的跨平台运行

3Container
–Container的两个主要类型是Window和Panel
–Window是Java.awt.Window的对象
•Window是java.awt.Window的对象。Window是显示屏上独立的本机窗口,它独立于其它容器
• Window有两种形式:Frame(框架)和Dialog(对话框)。Frame和Dialog是Window的子类。Frame是一个带有标题和缩放角的窗口。对话框没有菜单条。尽管它能移动,但它不能缩放。

4 布局管理器

(1)BorderLayout是Frame类的默认布局管理器

BorderLayout将整个容器的布局划分成东、西、南、北、中五个区域,组件只能被添加到指定的区域。当窗口垂直延伸时,东、西、中区域也延伸;而当窗口水平延伸时,东、西、中区域也延伸
如不指定组件的加入部位,则默认加入到Center区域
每个区域只能加入一个组件,如加入多个,则先前加入的组件会被遗弃

myFrame.add(buttonNorthButton,BorderLayout.NORTH);
		myFrame.add(buttonSButton,BorderLayout.SOUTH);
		myFrame.add(buttonWButton,BorderLayout.WEST);
		myFrame.add(buttonEButton,BorderLayout.EAST);
(2)Flow与其它布局管理器不一样,Flow布局管理器不限制它所管理的组件的大小,而是允许它们有自己的最佳大小。
• 默认是居中放置组件
• 如果想在组件之间创建一个更大的最小间隔,可以规定一个界限。
• 当用户对由Flow布局管理的区域进行缩放时,布局就发生变化

 (3) Grid

将组件添加到网格中的命令决定它们占有的单元。单元的行数是从左到右填充,就象文本一样,而列是从上到下由行填充。

myfFrame.setLayout(new GridLayout(3,1));
		
		
		myfFrame.add(btn1);
		myfFrame.add(btn2);
		myfFrame.add(btn3);
		myfFrame.add(btn4);
		myfFrame.setSize(520,521);
		
		myfFrame.pack();
		
		
		myfFrame.setVisible(true);

5 事件 

事件-描述发生了什么的对象
•-事件源-事件的产生器
•-事件处理器-接收事件、解释事件并处理用户交互的方法
–如果用户在用户界面层执行了一个动作(鼠标点击和按键),这将导致一个事件的发生。事件是描述发生了什么的对象。存在各种不同类型的事件类用来描述各种类型的用户交互。

6当单击一个按钮时就会产生一个事件(ActionEvent),然后检查是否有与该按钮关联的事件处理器(实际上就是一个方法),如果没有,那么什么都不执行;如果有,就会将该事件传递给与该按钮关联的事件处理器方法,作为该方法的参数,之后该事件处理器方法就会自动得到调用,并且该方法可以使用传递过来的ActionEvent对象,进而获得事件发生时与该事件及事件源相关联的那些信息。

7Java中的组件若想添加事件处理器,都会使用形如addXxxListener的方法来添加。

8 适配器  只需重写需要的用的方法,不需要实现全部listener接口的方法

class OnMouseDown extends MouseAdapter
{

	@Override
	public void mouseClicked(MouseEvent e)
	{
		System.out.println("");
	}
	
}
JAVA源码

public abstract class MouseAdapter implements MouseListener, MouseWheelListener, MouseMotionListener {
    /**
     * {@inheritDoc}
     */
    public void mouseClicked(MouseEvent e) {}

    /**
     * {@inheritDoc}
     */
    public void mousePressed(MouseEvent e) {}

    /**
     * {@inheritDoc}
     */
    public void mouseReleased(MouseEvent e) {}

    /**
     * {@inheritDoc}
     */
    public void mouseEntered(MouseEvent e) {}

    /**
     * {@inheritDoc}
     */
    public void mouseExited(MouseEvent e) {}

    /**
     * {@inheritDoc}
     * @since 1.6
     */
    public void mouseWheelMoved(MouseWheelEvent e){}

    /**
     * {@inheritDoc}
     * @since 1.6
     */
    public void mouseDragged(MouseEvent e){}

    /**
     * {@inheritDoc}
     * @since 1.6
     */
    public void mouseMoved(MouseEvent e){}
}







你可能感兴趣的:(15 AWT 事件)