博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[javaSE] GUI(Action事件)
阅读量:7079 次
发布时间:2019-06-28

本文共 1597 字,大约阅读时间需要 5 分钟。

对自己定义的类规范化一下,事件和图形化组件分离出来

定义一个类FrameDemo

定义成员属性Frame frame

定义成员属性Botton

 

定义构造方法FrameDemo()

定义初始化方法init()

初始化方法中,new出来Frame(),参数:String的窗体名称

调用Frame对象的setBounds()方法,参数:xywidthheight

调用Frame对象的setLayout()方法,参数:FlowLayout对象

获取Button对象,new出来,构造参数:String的按钮文本

调用Frame对象的add()方法,参数:Button对象

调用Frame对象的setVisible()方法,参数:Booleantrue

 

定义事件方法myEvent()

调用Frame对象的addWindowListener()方法,参数:WindowListener对象,WindowListener是个接口,里面有七个方法要实现,找实现子类WindowAdapter,匿名内部类重写windowClosing()方法,传递进来参数:WindowEvent对象

调用Button对象的addActionListener()方法,参数:ActionListener对象,这个类是个接口,因此采用匿名内部类实现这个接口,实现方法actionPerformed()方法,传递进来参数:ActionEvent对象

import java.awt.Button;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class FrameDemo {    private Frame frame;    private Button button;    public FrameDemo() {        init();    }    /**     * 初始化     */    public void init(){        frame=new Frame("测试窗体");        frame.setBounds(300, 200, 200, 200);        frame.setLayout(new FlowLayout());                button=new Button("退出");        frame.add(button);        frame.setVisible(true);                addEventAction();    }    /**     * 添加事件     */    public void addEventAction(){        //按钮退出        button.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                System.exit(0);            }        });    }    /**     * @param args     */    public static void main(String[] args) {        new FrameDemo();    }}

 

转载于:https://www.cnblogs.com/taoshihan/p/5565425.html

你可能感兴趣的文章
课堂练习
查看>>
HTML学习成果 制作一个空白简历
查看>>
使用mybatis自带工具,自动生成表对应domain、mapper.xml以及dao
查看>>
餐饮ERP相关问题FAQ
查看>>
基于 Vue.js 的移动端组件库mint-ui实现无限滚动加载更多
查看>>
Matrix Computations 1
查看>>
springboot上传代码到gitlab并发布上线操作
查看>>
FILE * fopen(const char * path,const char * mode);
查看>>
[Flask]sqlalchemy使用count()函数遇到的问题
查看>>
[python](Docker SDK)上传镜像到私有仓库(tls、身份认证)
查看>>
听说是阿里笔试题
查看>>
使用pm2管理nodejs应用
查看>>
MySQL基础之---mysqlimport工具和LOAD DATA命令导入文本文件
查看>>
php 读取文件头部两个字节 判断文件的实际类型
查看>>
异或交换真的比开一个tmp快吗?
查看>>
使用sea.js管理你项目js文件
查看>>
windows device driver 小结感想
查看>>
SQLServer获取临时表列名并判断指定列名是否存在
查看>>
4827 妹子[快速乘法]
查看>>
Ubuntu的一些使用记录
查看>>