java GUI 之 适配器模式

Java se:GUI 概述 GUI(图形用户接口):方便直观 CLI(命令行用户接口):需要记忆一下DOS命令,麻烦 包: java.awt:和系统关联较强 javax.swing:纯Java编写 GUI继承体系图 容器组件:是可以存储基本组件和容器组件的组件。 基本组件:是可以使用的组件,但是必须依赖容器。 事件监听机制 A:事件源 B:事件 C:事件处理 D:事件监听 适配器模式 接口(方法比较多) – 实现类(仅仅使用一个,也得把其他的实现给提供了,哪怕是空实现)太麻烦了。 接口(方法比较多) – 适配器类(实现接 阅读详情

适配器模式概述

适配器模式:
* 当一个接口中有众多方法,在实现该接口时,如果想只实现部分功能,不实现全部功能。
* 就可以先定义一个类,实现该接口,重写空实现所有方法,将该类设计为抽象类。
* 当想实现该接口某些方法时,就可以定义类继承该抽象类,实现想实现的方法,而无需全部实现!


今天在做按钮监听的重写MouseListener接口的时候,需要实现他里面所有未实现的方法,可是,想用的也就一两个。

        jButton.addMouseListener(new MouseListener() {
            //释放
            @Override
            public void mouseReleased(MouseEvent e) {
            }
            //按压
            @Override
            public void mousePressed(MouseEvent e) {
            }
            //离开
            @Override
            public void mouseExited(MouseEvent e) {
            }
            //进入按钮
            @Override
            public void mouseEntered(MouseEvent e) {
            }
            //点击按钮
            @Override
            public void mouseClicked(MouseEvent e) {
            AdminDialog admindialog = new AdminDialog(MainFrame.this, false);
            }
        });

很拖沓,代码也没有整洁性。

不过设计者用了适配器模式封装了MouseAdapter这个类,首先实现了MouseListener接口中所有的方法,函数体全为空,将自己定义为抽象类。如图:
这里写图片描述

所以以下代码就可以完成之前的功能:

        jButton.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
            AdminDialog admindialog = new AdminDialog(MainFrame.this, false);
            }
        });

写了一个更通俗一些的代码:

/*
 *      接口:
        抽象方法:
            * 吃斋
            * 念佛
            * 倒拔垂杨柳
       抽象类 实现 接口:
        重写所有接口方法
       子类 继承 抽象类:
        倒拔垂杨柳
 */
public class Test1 {
    public static void main(String[] args) {

    }
}

interface Ablilty {
    public void eat();
    public void read();
    public void pushTree();
}

abstract class one implements Ablilty {
    public void eat(){};
    public void read(){};
    public void pushTree(){};
}

class two extends one {
    public void pushTree() {
        System.out.println("倒拔杨柳");
    }
}
告别重打包:在Android 9上实现免Root的Frida-Gadget持久化Hook(附AOSP源码修改详解) 本文详细介绍了在Android 9上实现免Root的Frida-Gadget持久化Hook技术方案。通过修改AOSP源码,绕过传统重打包方式面临的签名校验和完整性检查,实现在非Root环境下的系统级Hook。文章包含核心代码修改、编译配置调整及调试技巧,为移动安全研究提供高效稳定的解决方案。 阅读详情

相关推荐

Cadence Virtuoso IC617:从零构建传输门与反相器的Schematic设计实战

本文详细介绍了使用Cadence Virtuoso IC617进行传输门与反相器Schematic设计的完整流程,包括环境准备、原理图绘制、Symbol创建、仿真验证及实用技巧。通过分步指导和实战经验分享,帮助初学者快速掌握集成电路设计基础,提升EDA工具应用能力。

weixin_29194693的博客 597

javaGUI的简单了解及适配器模式

java_GUI Graphical User Interface(图形用户接口)。 1.如何创建一个窗口并显示 常说java代码一处编译到处运行,但javaGUI是一处编译到处调试 2.GUI布局管理器 * FlowLayout(流式布局管理器) * 从左到右的顺序排列。 * Panel默认的布局管理器。 * BorderLayout(边界布局管理器) * 东

whaleluo的博客 615

Selenium ChromeDriver反爬与性能优化实战指南

ChromeDriver作为Selenium的核心驱动,本质是浏览器自动化执行引擎,其默认行为会暴露大量JS运行时指纹(如navigator.webdriver、window.chrome),极易被前端反爬系统识别;同时因进程管理粗放、渲染等待机制僵化,导致内存泄漏、僵尸进程和高并发下稳定性崩塌。本文围绕真实生产场景,系统解析浏览器指纹伪造原理、进程级资源管控策略、基于页面状态的智能等待范式,并提供Docker容器化、K8s弹性扩缩与Prometheus可观测性落地路径,助力开发者将ChromeDriver

weixin_29762151的博客 1259

GUI_适配器设计模式讲解

package cn.itcast_03; /* * 问题: * 接口(方法比较多) -- 实现类(仅仅使用一个,也得把其它的实现给提供了,那怕是空实现) * 太麻烦了。 * 解决问题: * 接口(方法比较多) -- 适配器(实现接口,仅仅空实现) -- 实现类(用哪个实现哪个) */ public class UserDaoDemo { public static v

辐_射的博客 456

一篇NS SAR ADC的学习记录

一篇NS SAR ADC的学习记录 内容包含: OverSampling Noise Shaping Dynamic Amplifier DAC with Redundancy 最近看了些有意思的SAR ADC结构,但是因为确实对模拟这个领域不太熟,导致了一系列的级联查找,最终达到了一个大概能懂的状态,为了理清思路,顺便别让看了这么些天的东西浪费了,还是计划写篇文章。 ps:由于不是一篇特别正紧的报告,参考文献就写的比较随便,且我还是个做数字的 A 13.5-ENOB, 107-μW Noise-Sha

weixin_45669724的博客 8710

Python+Appium实现泛微OA自动打卡:5分钟搭建移动端自动化脚本

移动端自动化测试是软件测试与办公自动化领域的重要技术方向,其核心原理是通过程序模拟用户对手机应用界面的操作,实现重复性任务的自动执行。Appium作为主流的开源移动端自动化框架,基于WebDriver协议,支持跨平台且无需修改被测应用,为自动化脚本开发提供了标准化接口。在工程实践中,结合Python简洁的语法和丰富的生态,可以快速构建稳定可靠的自动化解决方案。这一技术组合的价值在于能够高效处理“重复性、低价值、高频率”的日常操作,例如考勤打卡、数据填报等办公场景,显著提升工作效率。本文以泛微OA Emobi

weixin_28836875的博客 389

GUI图形编程(7)---适配器模式

在Swing事件机制所采用的设计模式:适配器模式 定义一个接口:在接口中定义所需要的规范(方法) 定义一个抽象类  抽象类实现了接口,抽象类中对接口中的方法都是空实现 在使用的时候,不需要去实现接口(不需要去实现接口中的所有的方法),去继承抽象类适配器,需要那个方法,就重写那个方法 在实际开发中,事件的添加 需要知道事件源 需要知道该组件需要绑定的是那种事件 一般使用匿名内部类去实现事...

11onhook的博客 318

MAC-H3C官网inode客户端下载安装

MAC-H3C官网inode客户端下载安装

兴趣是最好的老师 1万+

Java适配器的理解与思考(Java编程思想第四版)

Java适配器的理解与思考(Java编程思想第四版) 课本177页代码 package interfaceprocessor; //调用Apply类中的process方法 public class Apply { public static void process(Processor p,Object s){ System.out.println("Using Processor "+p.name()); System.out.println(p.process(s)); } } pa

qq_45928520的博客 351

咨询进阶——解读40页公司战略解码方法【附全文阅读】

战略解码是将企业战略转化为可执行计划的关键过程,强调垂直和水平一致性原则。通过KPI指标设计和目标分解,确保战略在各部门和岗位有效落地。解码过程包括战略澄清、目标牵引、绩效分解和承诺签订,输出战略解码图等文件。不同部门根据责任定位(如利润中心、绩效中心)采用差异化考核方式,实现战略有效执行。

cdfunlove的博客 149

93.华为路由器:IPSec加密GRE通道(GRE over IPsec)

IPSec加密GRE通道 由于GRE隧道不提供安全性保障,使用ipsec加密gre隧道是现网中比较常用的VPN部署,它的加密方式分为两种: 可以使用IPsec来加密隧道进行传输,叫做IPsec over GRE; 加密数据流后从隧道传输,称为GRE over IPsec。 下面将配置一个简单的IPsec over GRE实验。 一、搭建模拟环境 首先我们先搭建环境,先根据拓扑图把基本的IP地址配好,然后分别在AR1、AR3加两条静态路由,使得两个公网互通。 [AR1]in g0/0/0 [AR

迷逝 1万+

Unity GUI自适应屏幕分辨率的方法

1:GUI自适应屏幕方法. 由于屏幕尺寸的问题,我们设计的UI在不同尺寸屏幕上不能很好的工作,因此我们的工程需要适应不同屏幕的要求,unity新版本中已经可以设置屏幕自适应而不需要我们自己去设置,在设置之前我们先了解一下Canvas的inspector属性都有什么。 A: render Mode 渲染模式选择,这里有三种模式分别为:Screen Space – overlay,Scree

hcshen的博客 2万+

YOLOv11 改进 - C2PSA | C2PSA融合TSSA(Token Statistics Self-Attention)令牌统计自注意力,优化遮挡目标感知

本文介绍了Token Statistics Self-Attention(TSSA)机制,并将其集成到YOLOv11中。传统自注意力计算复杂度高,TSSA进行了范式转变,基于token统计特征实现高效注意力交互。它通过“算法展开”推导得出,以“最大编码率降低”为目标,实现特征学习。TSSA包含动态分组和低秩投影优化两步创新,具备线性复杂度。我们将TSSA代码集成到YOLOv11的C2PSA模块中。实验表明,改进后的YOLOv11在目标检测任务中表现良好,验证了TSSA机制的有效性。

魔改工程师的博客 669

Java面试题:解释适配器模式及其在Java中的应用

适配器模式(Adapter Pattern)是一种结构型设计模式,它允许将一个类的接口转换成客户期望的另一个接口。适配器模式使得原本接口不兼容的类可以一起工作,从而提高了类的复用性和系统的灵活性。

码农超哥的博客 1036

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

GUI(图形界面编程)

(1)GUI 与CLI      GUI           •Graphical User Interface(图形用户接口)。           •用图形的方式,来显示计算机操作的界面,这样更方便更直观。     CLI           •Command line User Interface (命令行用户接口)           •就是常见的Dos命令行操作。     ...

博客&brz 12万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Java学习总结--039GUI

1.1GUI是什么 Graphical User Interface(图形用户接口) java提供了一个 java.awt 包,用于创建用户界面和绘制图形图像的所有类。 做j2ee方向的一般很少会用这个东西 1.2 GUI的简单使用 知识点: 窗口,尺寸,位置、关闭、图标、动作监听、鼠标监听、键盘监听 代码 在这里插入代码片 public class Demo01...

web116629的博客 196

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Java——GUI(图形用户界面设计)

package com.yy.gui; //GUI功能简单运用 import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListe...

beyond谚语的博客 2万+

JAVA GUI

JAVA GUI 人生天地之间,若白驹过隙,忽然而已。 这个已经过时,了解即可 目录JAVA GUI1. 窗口2. 组件3. 事件监听 1. 窗口 框架与容器(画板)、弹窗,需要设置大小,位置,背景,可见性,(其实和CSS有一定相似性) 2. 组件 按钮,标签,文本框(和HTML类似) 3. 事件监听 鼠标监听,键盘监听,窗口监听,组件监听(监听为了不继承实现监听类里面所有的方法,运用了设计模式的适配器模式) ...

qq_44005434的博客 136

java基础23_GUI

1.GUI: (1)GUI 是用户图形接口

android爱好者的学习之路 538

Java_GUI

内容概述 GUI概述awt和swing包概述GUI继承体系图布局管理器事件监听机制和适配器模式GUI案例 一、GUI概述  什么是GUI:   Graphical User Interface(图形用户接口)  什么是CLI:   Command line User Interface (命令行用户接口) 二、awt和swing包概述  awt包和swing包: 1.

小特 274

JAVA基础33——GUI简略

1.知晓适配器 public class demo1GUI { /** * @param args * GUI图形界面 1. FlowLayout (流式布局管理器):从左到右的顺序排列。 BorderLayout (边界布局管理器):东,南,西,北,中 GridLayout (网格布局管理器):规则的矩阵 CardLayout (卡片布局管理器):选项卡 GridBagLayou...

weixin_42161333的博客 157

第12章:图形用户界面GUI

第12章:图形用户界面GUI

wangyanming123的博客 505

java基础学习_GUI_如何让Netbeans的东西Eclipse能访问、GUI(图形用户接口)_day25总结...

java基础学习_GUI_如何让Netbeans的东西Eclipse能访问、GUI(图形用户接口)_day25总结 ============================================================================= =========================================...

weixin_34001430的博客 192

GUI---图形编程基础

------- android培训、java培训、期待与您交流! ---------- GUI—Java 图形用户接口 1:概念:java针对用户图形化操作提供的服务,封装了命令操作系统。 2:两个包:java.awt.*:早期提供的包,和系统关联较强,跨平台性不够好;          Java.swing.*:纯java编写的扩展包,移植性强 3:GUI体系结构:         

xjswmgw的博客 448

java学习day25

JAVA基础知识

a8874569的专栏 314

【黑马程序员】GUI

GUI(了解)  (1)用户图形界面   GUI:方便直观   CLI:需要记忆一下命令,麻烦  (2)两个包:   java.awt:和系统关联较强   javax.swing:纯Java编写  (3)GUI的继承体系   组件:组件就是对象    容器组件:是可以存储基本组件和容器组件的组件。    基本组件:是可以使用的组件,但是必须依赖容器。  (4)事件监听机制(理

qq_32861793的博客 317
上一篇: java集合之TreeSet的整理
下一篇: Git命令整理以及一些总结
Kindle_code
博客等级 码龄12年 21粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值