欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java 入門圖形用戶界面設(shè)計之事件處理上

 更新時間:2022年02月16日 15:45:27   作者:小旺不正經(jīng)  
圖形界面(簡稱GUI)是指采用圖形方式顯示的計算機操作用戶界面。與早期計算機使用的命令行界面相比,圖形界面對于用戶來說在視覺上更易于接受,本篇精講Java語言中關(guān)于圖形用戶界面的事件處理

Java程序設(shè)計 圖形用戶界面 【七】事件處理上

事件處理

事件和監(jiān)聽器

事件:表示一個對象發(fā)生狀態(tài)變化

監(jiān)聽器:不斷地監(jiān)聽事件的變化,并根據(jù)這些事件進行相應(yīng)地處理

事件類 EventObject類

EventObject類的定義格式

public class EventObject extends Object implements Serializable{
	public EventObject(Object source){
	// 構(gòu)造一個發(fā)生事件的對象
	}
	public Object getSource(){
	// 返回一個事件對象
	}
	public String toString(){
	// 得到信息
	}
}

Java事件處理流程

image-20220211152021277

窗體事件

WindowListener是專門處理窗體事件的監(jiān)聽接口

方法 作用
void windowActivated(WindowEvent e) 將窗口變?yōu)榛顒哟翱跁r觸發(fā)
void windowDeactivated(WindowEvent e) 將窗口變?yōu)椴换顒哟翱跁r觸發(fā)
void windowClosed(WindowEvent e) 當窗口被關(guān)閉時觸發(fā)
void windowClosing(WindowEvent e) 當窗口正在關(guān)閉時觸發(fā)
void windowIconified(WindowEvent e) 窗口最小化時觸發(fā)
void windowDeiconified(WindowEvent e) 窗口從最小化恢復(fù)到正常狀態(tài)時觸發(fā)
void windowOpened(WindowEvent e) 窗口打開時觸發(fā)

實現(xiàn)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("窗口被關(guān)閉");
    }

    @Override
    public void windowClosing(WindowEvent e) {
        System.out.println("窗口關(guān)閉");
    }

    @Override
    public void windowDeactivated(WindowEvent e) {
        System.out.println("取消窗口選中");
    }

    @Override
    public void windowDeiconified(WindowEvent e) {
        System.out.println("窗口從最小化恢復(fù)");
    }

    @Override
    public void windowIconified(WindowEvent e) {
        System.out.println("窗口最小化");
    }

    @Override
    public void windowOpened(WindowEvent e) {
        System.out.println("窗口被打開");
    }
}

在窗體上注冊事件監(jiān)聽器

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

監(jiān)聽適配器

方便用戶進行事件處理的實現(xiàn)。以WindowAdapter為例,用戶只要繼承了此類,就可以根據(jù)自己的需要覆寫方法,如果現(xiàn)在只關(guān)心窗口關(guān)閉方法,則只在子類中覆寫windowClosing()方法即可

通過WindowAdapter實現(xiàn)監(jiān)聽

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("窗口關(guān)閉");
        System.exit(1);
    }
}

而在窗體操作的代碼中,直接使用以上的監(jiān)聽器類即可

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

使用匿名內(nèi)部類

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

如果現(xiàn)在使用適配器操作類,則直接編寫匿名內(nèi)部類就可以減少監(jiān)聽類的定義

到此這篇關(guān)于Java 入門圖形用戶界面設(shè)計之事件處理上的文章就介紹到這了,更多相關(guān)Java 事件處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java的四種引用方式

    Java的四種引用方式

    這篇文章主要介紹了Java的四種引用方式,Java的引用方式主要包括強引用、軟引用、弱引用、虛引用;下面文章便來詳細介紹這四種引用方式,需要的朋友可以參考一下
    2021-10-10
  • 為什么不推薦使用BeanUtils屬性轉(zhuǎn)換工具示例詳解

    為什么不推薦使用BeanUtils屬性轉(zhuǎn)換工具示例詳解

    這篇文章主要介紹了為什么不推薦使用BeanUtils屬性轉(zhuǎn)換工具,本文通過示例代碼給大家詳細介紹,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • 如何給Cacheable的key加上常量

    如何給Cacheable的key加上常量

    這篇文章主要介紹了如何給Cacheable的key加上常量的方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • java api返回值的標準化詳解

    java api返回值的標準化詳解

    這篇文章主要介紹了java api返回值的標準化詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Java?Runnable和Thread實現(xiàn)多線程哪個更好你知道嗎

    Java?Runnable和Thread實現(xiàn)多線程哪個更好你知道嗎

    這篇文章主要為大家詳細介紹了Java?Runnable和Thread實現(xiàn)多線程哪個更好,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助<BR>
    2022-03-03
  • 淺談關(guān)于spring profile的誤解

    淺談關(guān)于spring profile的誤解

    這篇文章主要介紹了淺談關(guān)于spring profile的誤解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • JAVA 多線程編程之CountDownLatch使用詳解

    JAVA 多線程編程之CountDownLatch使用詳解

    當多個線程需要協(xié)調(diào)和同步執(zhí)行任務(wù)時,Java中的CountDownLatch(倒計時門閂)是一個常用的工具類,本文將介紹 CountDownLatch 的基本原理、用法以及示例代碼,需要的朋友可以參考下
    2023-05-05
  • Java如何求交集、并集、差集

    Java如何求交集、并集、差集

    這篇文章主要介紹了Java如何求交集、并集、差集問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 如何利用Jackson序列化忽略指定類型的屬性詳解

    如何利用Jackson序列化忽略指定類型的屬性詳解

    這篇文章主要給大家介紹了關(guān)于如何利用Jackson序列化忽略指定類型的屬性,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • 詳細分析Java并發(fā)集合ArrayBlockingQueue的用法

    詳細分析Java并發(fā)集合ArrayBlockingQueue的用法

    這篇文章主要介紹了詳細分析Java并發(fā)集合ArrayBlockingQueue的用法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04

最新評論