`

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的Abstract Window ...总之,Java的AWT包是构建GUI应用的基本工具,虽然有其局限性,但仍然是Java GUI编程的重要组成部分。开发者可以根据项目需求,结合Swing,灵活选择合适的工具来创建用户友好的应用程序。

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

    ### Java的.awt包和.java.util包的区别 #### Java.util包详解 Java.util包是一个非常重要的标准库之一,其中包含了大量有用的类和接口,为开发者提供了丰富的功能。此包中的类和接口可以分为以下几大类别: 1. **...

    用AWT包实现的JAVA计算器

    本项目“用AWT包实现的JAVA计算器”旨在通过AWT来构建一个功能完备的计算器应用。下面将详细介绍这个项目中的关键知识点。 1. **AWT组件**: - AWT提供了各种基本组件,如按钮(Button)、文本字段(TextField)、...

    JAVA 程序 源代码 import java.applet.*;import java.awt.*

    2. **Java AWT(Abstract Window Toolkit)**: `java.awt.*` 导入的是Java的抽象窗口工具包,它是Java GUI的基础,提供了创建基本组件(如按钮、文本框)和布局管理器的能力。AWT组件是重量级的,它们依赖于操作系统...

    JAVA中AWT的几个实例

    Java中的Abstract Window Toolkit(AWT)是Java早期的图形用户界面(GUI)库,它是Java标准版(J2SE)的一部分。AWT提供了创建和管理窗口、按钮、文本框等基本GUI组件的基本类和接口。这个压缩包文件包含了几个关于...

    java的awt计算器

    - AWT 使用本地平台的GUI工具包,因此可以很好地集成到各种操作系统中。 2. **事件监听器**: - 在 AWT 和 Swing 中,事件处理通常通过实现特定接口的监听器来完成。 - 在本项目中,`ActionListener` 接口被用来...

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

    在设计方案中,Java部分主要负责AWT包的实现,而C部分主要负责MiniGUI图形库的调用。通过交叉编译,生成动态链接库文件libminiguipeer.so。最后,在构建Java平台时,将Java类包AWTMiniGUI.jar添加到变量Classpath里...

    import java.awt.docx

    在我们的代码中,我们可以看到 import 语句中包含了 java.awt 和 javax.swing.*,这说明了我们使用的是 Java 的 AWT 和 Swing 工具包。 2. JFrame 和 JDialog 的使用 在我们的代码中,我们可以看到 MainWindow 类...

    JAVA AWT学习手册

    AWT(Abstract Window Toolkit),即抽象窗口工具包,是Java API为Java程序提供的建立图形用户界面的基本工具集,AWT可以用于Java Application和Java Applet的图形用户界面的创建。 AWT工具集简介 AWT工具集是Java ...

    Java AWT组件综合练习

    在Java AWT中,开发者可以构建丰富的交互式应用程序。本综合练习旨在帮助你深入理解和熟练运用AWT组件,包括List、Choice、Button以及TextArea。 首先,我们来看`List`组件。`List`是用来显示一系列可选择项的控件...

    java awt记事本

    Java AWT(Abstract Window Toolkit)是Java平台早期提供的图形用户界面(GUI)工具包,用于创建和管理窗口、按钮、文本框等组件。在“java awt记事本”项目中,开发者用AWT库构建了一个类似Windows XP记事本的应用...

    JAVA_CH.rar_java awt chm_java.awt.geom chm

    在AWT中,`java.awt.geom`包是用于几何形状和坐标转换的核心包。这个包包含了一些基础的二维几何对象,如点、线段、矩形、椭圆、路径等,以及相关的运算方法,比如求交、合并、变换等。这个包还支持矢量图形的操作,...

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

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

    awt.rar_awt_java awt_java 画图

    Java AWT(Abstract Window Toolkit)是Java平台早期的图形用户界面(GUI)工具包,它为开发者提供了创建和管理窗口、按钮、文本框等组件的基本功能。在Java中,AWT是 Swing 的基础,虽然现在Swing更常用,但AWT仍然...

    java记事本,awt swing 源码

    通过分析和学习这个Java记事本的源码,你可以深入了解AWT和Swing组件的用法,以及如何在Java中构建一个简单的应用程序。同时,你还能学习到文件I/O操作、事件处理机制和GUI设计原则,这些都是Java开发中不可或缺的...

    java 图形界面 java awt swt swing gui

    在Java中,有三个主要的GUI工具包:AWT(Abstract Window Toolkit),SWT(Standard Widget Toolkit)和Swing。 1. AWT(Abstract Window Toolkit): AWT是Java最早提供的GUI库,它是Java的基础GUI组件集合。AWT...

    Java基于AWT实现的计算器

    在Java编程语言中,AWT(Abstract Window Toolkit)是最早的图形用户界面(GUI)库,用于创建跨平台的桌面应用程序。本项目“Java基于AWT实现的计算器”就是利用AWT组件来构建一个完整的功能计算器,它具备了基础...

Global site tag (gtag.js) - Google Analytics