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

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

事件处理

事件和监听器

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

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

事件类 EventObject类

EventObject类的定义格式

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

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

监听适配器

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

使用匿名内部类

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

(0)

相关推荐

  • Java 入门图形用户界面设计之单选按钮

    Java程序设计 图形用户界面 [九]单选按钮 单选按钮 JRadioButton JRadioButton类 方法 作用 public JRadioButton(Icon icon) 建立一个单选按钮,并指定图片 public JRadioButton(Icon icon,boolean selected) 建立一个单选按钮,并指定图片和其是否选定 public JRadioButton(String text) 建立一个单选按钮,并指定其文字,默认不选定 public JRadioButto

  • Java程序图形用户界面设计之标签组件

    目录 标签组件JLabel 更改JLabel的文字样式 设置图片 Java程序设计 图形用户界面[三] 标签组件JLabel JLabel组件表示的是一个标签,本身是用于显示信息的,一般情况下是不能直接更改其显示内容的 常量 作用 public static final int LEFT 标签文本左对齐 public static final int CENTER 标签文本居中对齐 public static final int RIGHT 标签文本右对齐 方法 作用 public JLabel

  • java图形用户界面实现菜单功能

    本文实例为大家分享了java图形用户界面实现菜单功能的具体代码,供大家参考,具体内容如下 题目:编写一个图形用户界面,实现菜单的功能.有3个一级菜单项:File.Edit和Help.在File菜单项中,有3个二级菜单项:New.Open和Save.在Edit菜单项中,有3个二级菜单项:Copy.Cut和Paste.在Help菜单项中,有一个二级菜单项About.对于每一个二级菜单项,不必真正实现其功能,只要演示它能响应鼠标单击事件即可,如弹出一个对话框或打印一句话. import java.aw

  • Java程序图形用户界面设计之容器JFrame

    目录 基本容器JFrame JFrame类的常用操作方法 创建窗体 Java程序设计 图形用户界面 [二] 基本容器JFrame JFrame类的常用操作方法 方法 作用 public JFrame() throws HeadlessException 创建一个普通的窗体对象 public JFrame(String title) throws HeadlessException 创建一个窗体对象,并指定标题 public void setSize(int width,int height) 设

  • Java程序图形用户界面设计之按钮与布局

    目录 按钮组件 JButton JButton类常用方法 按钮上显示图片 布局管理器 FlowLayout BorderLayout GridLayout CardLayout 绝对定位 Java程序设计 图形用户界面[四] 按钮组件 JButton JButton组件表示一个普通的按钮 JButton类常用方法 方法 作用 public JButton() throws HeadlessException 创建一个Button对象 public JButton(String label) th

  • Java 入门图形用户界面设计之列表框JList

    目录 列表框JList 使用ListModel构造JList JList事件处理 Java程序设计 图形用户界面 [十一]列表框JList 列表框JList JList常用方法 方法 作用 public JList(ListModel dataModel) 根据ListModel构造JList public JList(Object[] listData) 根据对象数组构造JList public JList(Vector<?> listData) 根据一个Vector构造JList publ

  • Java 入门图形用户界面设计之复选框

    Java程序设计 图形用户界面 [十]复选框 复选框JCheckBox JCheckBox类 方法 作用 public JCheckBox(Icon icon) 创建一个带图标的对象,但不选定 public JCheckBox(Icon icon,boolean selected) 创建一个带图标的对象,并指定其是否选定 public JCheckBox(String text) 创建一个带文本的对象,但不选定 public JCheckBox(String text,boolean selec

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

    Java程序设计 图形用户界面 [八]事件处理下 动作事件及监听处理 想让按钮变得有意义,就必须使用事件处理 使用ActionListener接口处理按钮的动作事件 方法 作用 void actionPerformed(ActionEvent e) 发生操作时调用 使用ActionListener监听 import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.

  • Java图形用户界面之列表框

    列表框通过Swing组件JList产生,其总是在屏幕上占据固定行数的空间.如果要得到列表框中被选中的元素,只需调用getSelectedValuesList(),它可以产生一个字符串数组,内容为被选中的元素名称.JList组件允许多重选择:如果按住Ctrl键,可以选中所有点击的元素:如果选中一个元素,按住Shift键并单击另一个元素,那么这两个元素之间的所有元素都被选中:要从选中的元素中去掉一个,按住Ctrl键单击该元素即可. 初始化列表框后,接着便是向列表框添加和修改内容.分为静态操作和动态操

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

    Java程序设计 图形用户界面 [七]事件处理上 事件处理 事件和监听器 事件:表示一个对象发生状态变化 监听器:不断地监听事件的变化,并根据这些事件进行相应地处理 事件类 EventObject类 EventObject类的定义格式 public class EventObject extends Object implements Serializable{ public EventObject(Object source){ // 构造一个发生事件的对象 } public Object g

  • Java深入学习图形用户界面GUI之事件处理

    Swing组件中的事件处理专门用于响应用户的操作,例如,响应用户的鼠标单击.按下键盘等操作.在Swing事件处理的过程中,主要涉及三类对象: 1.事件源:事件发生的场所,通常是产生事件的组件,如窗口.按钮.菜单等. 2.事件对象:封装了GUI组件上发生的特定事件(通常就是用户的一次操作). 3.监听器:负责监听事件源上发生的事件,并对各种事件做出相应处理(监听器对象中包含事件处理器). 实现Swing事件处理的主要步骤如下: 1.创建事件源:除了一些常见的按钮.键盘等组件可以作为事件源外,还可以

  • Java图形用户界面设计(Swing)的介绍

    前言 Swing是一个用于开发Java应用程序用户界面的开发工具包.它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格.Swing开发人员只用很少的代码就可以利用Swing丰富.灵活的功能和模块化组件来创建优雅的用户界面. Swing 是一个为Java设计的GUI工具包. Swing是JAVA基础类的一部分. Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表. Swing提供许多比AWT更好的屏幕显示元素.它们用纯Java写成,所以同Java本

随机推荐