返回顶部
首页 > 资讯 > 后端开发 > Python >Java入门图形用户界面设计之事件处理上
  • 269
分享到

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

2024-04-02 19:04:59 269人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

Java程序设计 图形用户界面 【七】事件处理上 事件处理 事件和监听器 事件:表示一个对象发生状态变化 监听器:不断地监听事件的变化,并根据这些事件进行相应地处理 事件类 Even

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

事件处理

事件和监听器

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

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

事件类 EventObject类

EventObject类的定义格式


public class EventObject extends Object implements Serializable{
	public EventObject(Object source){
	// 构造一个发生事件的对象
	}
	public Object getSource(){
	// 返回一个事件对象
	}
	public String toString(){
	// 得到信息
	}
}

Java事件处理流程

image-20220211152021277

窗体事件

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);
    }
}

image-20220211153339270

监听适配器

方便用户进行事件处理的实现。以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);
    }
}

image-20220211160600148

使用匿名内部类


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 事件处理内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java入门图形用户界面设计之事件处理上

本文链接: https://lsjlt.com/news/139434.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作