zoukankan      html  css  js  c++  java
  • windowsEvents

    今天我们要实现这个关闭窗口的功能,就是点窗口的那个叉叉它会关闭。

    设计窗口的事件就是WindowsEvents,而与之有关的监听器就是WindowsListener

    WindowsListener也是个接口,它有7个方法,分别处理windows的不同的事件。  比如windowActivated()window被激活,就是两个窗口,一个是颜色变灰,一个仍是蓝色,然后你用鼠标点那个灰的窗口它变成蓝色这叫激活窗口。  windowClosed()  已经关后做出的反应  windowClosing()正在关闭,这是我们要处理的事件。  windowIconified()卡片化,也是最小化的意思。

    看例子代码(内部类的写法):

    import java.awt.*;
    import java.awt.event.*;
    
    public class TestWindowClose {
        public static void main(String[] args) {
            new MyFrame55("fuck");
        }
    }
    
    class MyFrame55 extends Frame {
    
        public MyFrame55(String s) {
            super(s);
            setBounds(300,300,400,400);
            setLayout(null);
            setBackground(new Color(204,204,255));
            setVisible(true);
            addWindowListener(new MyWindowMonitor());
        }
    
        
        class MyWindowMonitor extends WindowAdapter {  //内部类,因为这个是window关闭的这个事件监听类对于其他类一点关系都没有
            public void windowClosing(WindowEvent e) {   //重写正在关闭这个事件
                setVisible(false);  
                System.exit(0);//存0是正常退出,存-1是非正常退出。
            }
        }
    
    }

     哎其实这个类和其他的方法有关系吗?除了和这个addWindowListener()所以,除了这个写法,我们还有这样的一种写法,这种写法叫做方法内的类:局部类,也叫匿名的内部类

        this.addWindowListener(
        new WindowAdapter() {//像一个类的类体,但它没有名字
          public void windowClosing(WindowEvent e) {
            setVisible(false);
            System.exit(-1);
          }
        });

    这个类是当成WindowAdapter来用。所以语法这样写本质上的意义就是这个类从WindowAdapter继承,我们new了这个类的一个对象出来把它当作WindowAdapter来用。

    匿名类一般是 逻辑简单,语句少,不经常变动,使用匿名类

    就知道有这个东西,看得懂别人写的就行了。

  • 相关阅读:
    【小程序】请求与封装
    【小程序】生命周期
    【小程序】项目结构
    【笔记】vue-cli 开发环境中跨域连接后台api(vue-resource 跨域post 请求)
    【笔记】npm 安装 vue-cli
    【笔记】css 实现宽度自适应屏幕 高度自适应宽度
    【笔记】css 1像素边框
    【笔记】让360浏览器用chrome 内核渲染你的网页
    【实践】require.js + r.js 代码打包压缩初体验
    【笔记】学校项目开发中所了解的一些浏览器之间的差异
  • 原文地址:https://www.cnblogs.com/wangshen31/p/6942011.html
Copyright © 2011-2022 走看看