`

Java中awt包

    博客分类:
  • Java
阅读更多
1. Java中awt包

AWT事件模型Event
1) 事件-描述发生了什么的对象 
2) 事件源-事件的产生器 
3) 事件处理器-接收事件、解释事件并处理用户交互的方法

Button是ActionEvent的对象。
事件处理器是一个方法。
之前使用层次模型(现在已经不使用了)。
事件监听器:委托模型。

增加事件处理器button.addActionListener()
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TestButton {
    public static void main(String[] args){
        Frame frame = new Frame("Test Button");
        Button button = new Button("Press Me!");
        //增加事件处理器
        button.addActionListener(new ButtonHandler());
        frame.add(button, BorderLayout.CENTER);
        frame.pack();
        frame.setVisible(true);
    }
}
class ButtonHandler implements ActionListener{
    @Override
    public void actionPerformed(ActionEvent e) {
        String label = e.getActionCommand();
        System.out.println(label);
    }
}

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

按钮获取时间ActionListener。
关闭按钮的实现WindowListener的windowClosing()用System.exit(0)关闭。
import java.awt.Button;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.util.Date;
public class MyFrame2 {
    public static void main(String[] args) {
        Frame frame = new Frame("My Frame2");
        Button button = new Button("click me");
        button.addActionListener(new MyListener());
        frame.addWindowListener(new MyWindowListener());
        frame.add(button);
        frame.setSize(500, 500);
        frame.setVisible(true);
    }
}
class MyListener implements ActionListener{    
    @Override
    @SuppressWarnings("deprecation")
    public void actionPerformed(ActionEvent e) {
        long milliSeconds = e.getWhen();
        Date date = new Date(milliSeconds);
        System.out.println(date.toLocaleString());
    }
}
class MyWindowListener implements WindowListener{
    @Override
    public void windowOpened(WindowEvent e) {
        // TODO Auto-generated method stub
    }
    @Override
    public void windowClosing(WindowEvent e) {
        // TODO Auto-generated method stub
        System.out.println("关闭窗口");
        System.exit(0);
    }
    @Override
    public void windowClosed(WindowEvent e) {
        // TODO Auto-generated method stub
    }
    @Override
    public void windowIconified(WindowEvent e) {
        // TODO Auto-generated method stub
    }
    @Override
    public void windowDeiconified(WindowEvent e) {
        // TODO Auto-generated method stub
    }
    @Override
    public void windowActivated(WindowEvent e) {
        // TODO Auto-generated method stub
    }
    @Override
    public void windowDeactivated(WindowEvent e) {
        // TODO Auto-generated method stub
    }
}

MouseMotionListener接口
MouseListener接口
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
public class TwoListen implements MouseMotionListener, MouseListener{
    private Frame frame;
    private TextField textField;
    @Override
    public void mouseClicked(MouseEvent e) {
        // TODO Auto-generated method stub
    }
    @Override
    public void mousePressed(MouseEvent e) {
        // TODO Auto-generated method stub
    }
    @Override
    public void mouseReleased(MouseEvent e) {
        // TODO Auto-generated method stub
    }
    @Override
    public void mouseEntered(MouseEvent e) {
        // TODO Auto-generated method stub
    }
    @Override
    public void mouseExited(MouseEvent e) {
        // TODO Auto-generated method stub
        String str = "The mouse has left the Frame";
        this.textField.setText(str);
    }
    @Override
    public void mouseDragged(MouseEvent e) {
        // TODO Auto-generated method stub
        String str = "x: " + e.getX() + ", y: " + e.getY();    
        this.textField.setText(str);
    }
    @Override
    public void mouseMoved(MouseEvent e) {
        // TODO Auto-generated method stub
    }
    public void go(){
        frame = new Frame("Two Listeners Example");
        frame.add(new Label("click"), BorderLayout.NORTH);
        textField = new TextField();
        frame.add(textField, BorderLayout.SOUTH);
        frame.addMouseMotionListener(this);
        frame.addMouseListener(this);
        frame.addMouseListener(new MyMouseListener());
        frame.setSize(300, 200);
        frame.setVisible(true);
    }
    public static void main(String[] args) {
        TwoListen two = new TwoListen();
        two.go();
    }
}
class MyMouseListener implements MouseListener{
    @Override
    public void mouseClicked(MouseEvent e) {
        // TODO Auto-generated method stub
    }
    @Override
    public void mousePressed(MouseEvent e) {
        // TODO Auto-generated method stub
    }
    @Override
    public void mouseReleased(MouseEvent e) {
        // TODO Auto-generated method stub
    }
    @Override
    public void mouseEntered(MouseEvent e) {
        // TODO Auto-generated method stub
        String str = "The mouse has entered the Frame";    
        System.out.println(str);
    }
    @Override
    public void mouseExited(MouseEvent e) {
        // TODO Auto-generated method stub
        String str = "The mouse has exited the Frame";    
        System.out.println(str);
    }
}

mouseDragged()鼠标拖动事件
一个事件源对应多个处理器。
分享到:
评论

相关推荐

    awt包java Android

    awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android ...

    Java的AWT包.pdf

    Java的AWT包.pdf 学习资料 复习资料 教学资源

    java中awt和swing是的关系以及区别

    这是java中awt和swing是的关系以及区别,可以跟好的分别两者中的关系

    用AWT包实现的JAVA计算器

    用AWT把实现的JAVA计算器

    java的.awt包和java.util包的区别

    了解Java的不同包功能

    嵌入式系统中Java+AWT的实现.

    网络 上 存 在的大量的Java程序都需要Java虚拟机提供...制的基础上,着重讨论了在嵌入式系统中实现AWT技术的过程。并且在实现AWT技术的 基础上,讨论了如何根据J2ME规范来进行AWT类库的构建。 是一篇很好的学习论文。

    java记事本,awt swing 源码

    java记事本 源码 awt swing java记事本 源码 awt swing

    计算器(JAVA)awt包

    自己写的一个JAVA计算器程序,有点儿简单,主要的思想就是:在进行某种运算前先进行前一种运算。 class Operator implements ActionListener{ public void actionPerformed(ActionEvent e){ dotflag=true;numflag=...

    AWT多媒体编程 JAVA

    这个文档主要介绍了JAVA中AWT包下的声音图像处理类,以及如何编程的方法。对于一般的应用来说,简单易懂,可以作为入门教程。

    jsb.zip_awt_event_import java.awt._java 记事本

    简单的记事本的JAVA程序,//导入awt包,event包 import java.awt.*

    AWT Framework

    AWT Framework is a lightweight framework for building AWT applications. Layout is configed by XML files. Events and View Switchs is managed by framework. Also you can plugin your customized AWT or ...

    基于MiniGUI的Java AWT包的移植实现.pdf

    基于MiniGUI的Java AWT包的移植实现.pdf

    JAVA_API1.8中文文档(CHM版).rar

    java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中显示元素逻辑相关的实体之间传输信息。 java.awt.event 提供处理由 AWT 组件所激发的...

    java awt记事本

    类似XP的记事本,实现了大部分功能的记事本

    java GUI资料 包括Swing awt

    java GUI资料,包括Swing awt

    用java awt组件写的tcp文件传送和接收程序

    用java awt组件写的tcp文件传送和接收程序

    Java中文参考文档(API).zip

    java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中显示元素逻辑相关的实体之间传输信息。 java.awt.event 提供处理由 AWT 组件所激发的...

    JavaAPI中文chm文档 part2

    java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中显示元素逻辑相关的实体之间传输信息。 java.awt.event 提供处理由 AWT 组件所激发的...

    Java+AWT/Swing+Oracle数据库购电影票系统(MIS)

    该电影票管理系统采用Oracle数据库+JDBC+JavaSE中逻辑、条件判断、IO流、File、集合、AWT、Swing等技术,实现了管理端对电影相关信息(宣传图、电影名、时长、上映时间、描述...)的上传与电影院影厅的排场与用户...

Global site tag (gtag.js) - Google Analytics