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

Java 入門(mén)圖形用戶(hù)界面設(shè)計(jì)之事件處理上

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

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

事件處理

事件和監(jiān)聽(tīng)器

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

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

事件類(lèi) EventObject類(lèi)

EventObject類(lèi)的定義格式

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

Java事件處理流程

image-20220211152021277

窗體事件

WindowListener是專(zhuān)門(mén)處理窗體事件的監(jiān)聽(tīng)接口

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

實(shí)現(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("窗口被打開(kāi)");
    }
}

在窗體上注冊(cè)事件監(jiān)聽(tīng)器

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)聽(tīng)適配器

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

通過(guò)WindowAdapter實(shí)現(xiàn)監(jiān)聽(tīng)

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)聽(tīng)器類(lèi)即可

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)部類(lè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)在使用適配器操作類(lèi),則直接編寫(xiě)匿名內(nèi)部類(lèi)就可以減少監(jiān)聽(tīng)類(lèi)的定義

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

相關(guān)文章

  • Java的四種引用方式

    Java的四種引用方式

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

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

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

    如何給Cacheable的key加上常量

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

    java api返回值的標(biāo)準(zhǔn)化詳解

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

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

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

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

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

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

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

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

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

    如何利用Jackson序列化忽略指定類(lèi)型的屬性詳解

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

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

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

最新評(píng)論