当前位置: 首页 > news >正文

[javaSE] GUI(Action事件)

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

定义一个类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

相关文章:

  • 如何查看表和索引的统计信息
  • 持续交付:价值主张
  • pyside 移动窗口到屏幕中间
  • 二进制单位
  • I00023 鸡兔同笼解法二
  • [FTP]pureftp部署和优化
  • cookie的secure属性详解
  • GIT笔记
  • JQuery选择器大全
  • 最终用户计算一周观察 002
  • 数据库 性能对比
  • 最近一些任务
  • B00009 C语言分割字符串库函数strtok
  • Gartner:2016年十大信息安全技术(含解读)
  • C# 值类型和引用类型
  • Babel配置的不完全指南
  • CSS实用技巧干货
  • Facebook AccountKit 接入的坑点
  • Java超时控制的实现
  • Markdown 语法简单说明
  • node.js
  • Sass 快速入门教程
  • spring + angular 实现导出excel
  • Webpack 4x 之路 ( 四 )
  • 构建工具 - 收藏集 - 掘金
  • 精彩代码 vue.js
  • 配置 PM2 实现代码自动发布
  • 前端技术周刊 2019-02-11 Serverless
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 实习面试笔记
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 在Mac OS X上安装 Ruby运行环境
  • #前后端分离# 头条发布系统
  • (06)Hive——正则表达式
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (4)事件处理——(7)简单事件(Simple events)
  • (a /b)*c的值
  • (Java)【深基9.例1】选举学生会
  • .java 9 找不到符号_java找不到符号
  • .NET Core引入性能分析引导优化
  • .NET 使用 XPath 来读写 XML 文件
  • .Net7 环境安装配置
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • .NET运行机制
  • .Net中ListT 泛型转成DataTable、DataSet
  • @EnableWebMvc介绍和使用详细demo
  • [ linux ] linux 命令英文全称及解释
  • [ solr入门 ] - 利用solrJ进行检索
  • [].slice.call()将类数组转化为真正的数组
  • [2023-年度总结]凡是过往,皆为序章
  • [2669]2-2 Time类的定义
  • [Android]竖直滑动选择器WheelView的实现
  • [Angular] 笔记 8:list/detail 页面以及@Input
  • [C++ 从入门到精通] 12.重载运算符、赋值运算符重载、析构函数