欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java 入门图形用户界面设计之事件处理上

程序员文章站 2022-04-15 11:14:43
java程序设计 图形用户界面 【七】事件处理上事件处理事件和监听器事件:表示一个对象发生状态变化监听器:不断地监听事件的变化,并根据这些事件进行相应地处理事件类 eventobject类evento...

java程序设计 图形用户界面 【七】事件处理上

事件处理

事件和监听器

事件:表示一个对象发生状态变化

监听器:不断地监听事件的变化,并根据这些事件进行相应地处理

事件类 eventobject类

eventobject类的定义格式

public class eventobject extends object implements serializable{
	public eventobject(object source){
	// 构造一个发生事件的对象
	}
	public object getsource(){
	// 返回一个事件对象
	}
	public string tostring(){
	// 得到信息
	}
}

java事件处理流程

Java 入门图形用户界面设计之事件处理上

窗体事件

windowlistener是专门处理窗体事件的监听接口

方法 作用
void windowactivated(windowevent e) 将窗口变为活动窗口时触发
void windowdeactivated(windowevent e) 将窗口变为不活动窗口时触发
void windowclosed(windowevent e) 当窗口被关闭时触发
void windowclosing(windowevent e) 当窗口正在关闭时触发
void windowiconified(windowevent e) 窗口最小化时触发
void windowdeiconified(windowevent e) 窗口从最小化恢复到正常状态时触发
void windowopened(windowevent e) 窗口打开时触发

实现windowlistener

import java.awt.event.windowevent;
import java.awt.event.windowlistener;

public class windoweventhandle implements windowlistener {
    @override
    public void windowactivated(windowevent e) {
        system.out.println("窗口被选中");
    }

    @override
    public void windowclosed(windowevent e) {
        system.out.println("窗口被关闭");
    }

    @override
    public void windowclosing(windowevent e) {
        system.out.println("窗口关闭");
    }

    @override
    public void windowdeactivated(windowevent e) {
        system.out.println("取消窗口选中");
    }

    @override
    public void windowdeiconified(windowevent e) {
        system.out.println("窗口从最小化恢复");
    }

    @override
    public void windowiconified(windowevent e) {
        system.out.println("窗口最小化");
    }

    @override
    public void windowopened(windowevent e) {
        system.out.println("窗口被打开");
    }
}

在窗体上注册事件监听器

import javax.swing.*;
import java.awt.*;

public class hello {
    public static void main(string[] args) {
        jframe frame = new jframe("一");
        frame.addwindowlistener(new windoweventhandle());
        frame.setsize(500,300);
        frame.setbackground(color.blue);
        frame.setlocation(500,500);
        frame.setvisible(true);
    }
}

Java 入门图形用户界面设计之事件处理上

监听适配器

方便用户进行事件处理的实现。以windowadapter为例,用户只要继承了此类,就可以根据自己的需要覆写方法,如果现在只关心窗口关闭方法,则只在子类中覆写windowclosing()方法即可

通过windowadapter实现监听

import java.awt.event.windowadapter;
import java.awt.event.windowevent;

public class windoweventhandle extends windowadapter {
    @override
    public void windowclosing(windowevent e) {
        super.windowclosing(e);
        system.out.println("窗口关闭");
        system.exit(1);
    }
}

而在窗体操作的代码中,直接使用以上的监听器类即可

import javax.swing.*;
import java.awt.*;

public class hello {
    public static void main(string[] args) {
        jframe frame = new jframe("一");
        frame.addwindowlistener(new windoweventhandle());
        frame.setsize(500,300);
        frame.setbackground(color.blue);
        frame.setlocation(500,500);
        frame.setvisible(true);
    }
}

Java 入门图形用户界面设计之事件处理上

使用匿名内部类

import javax.swing.*;
import java.awt.*;
import java.awt.event.windowevent;

public class hello {
    public static void main(string[] args) {
        jframe frame = new jframe("一");
        frame.addwindowlistener(new windoweventhandle(){
            @override
            public void windowclosing(windowevent e) {
                super.windowclosing(e);
                system.exit(1);
            }
        });
        frame.setsize(500,300);
        frame.setbackground(color.blue);
        frame.setlocation(500,500);
        frame.setvisible(true);
    }
}

如果现在使用适配器操作类,则直接编写匿名内部类就可以减少监听类的定义

到此这篇关于java 入门图形用户界面设计之事件处理上的文章就介绍到这了,更多相关java 事件处理内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!