swing 监听器常用方法

java Swing事件监听器

动作事件监听器ActionListener

  • 添加/删除方法 addActionListener()、removeActionListener()
  • 接口代码实现:
public class DrawListenerFather implements ActionListener{
    //发生动作(按钮被单击、列表框中选择一项)时调用。
    @Override
    public void actionPerformed(ActionEvent e) {
        //具体代码
        System.out.println(e.getActionCommand()+"被单击了");
    }
}

ActionEvent常用的方法:

    e.getActionCommand(); //获取按钮上的字符串;
    JButton btn = (JButton) e.getSource();//获取触发此次事件的组件对象,返回值为Object类型
    color = btn.getBackground();//获取按钮上的颜色;

鼠标事件监听器MouseListener, MouseMotionListener

  • 添加/删除方法 addMouseMotionListener()/removeMouseMotionListener(dl);
    addMouseListener()/removeMouseListener()
  • 接口代码实现:
//前5个方法为MouseListener接口的抽象方法
public class DrawListenerFather implements  MouseListener, MouseMotionListener {

    //鼠标点击组件时触发(按下并释放)
    @Override
    public void mouseClicked(MouseEvent e) {

    }
    //鼠标按压组件时触发
    @Override
    public void mousePressed(MouseEvent e) {

    }
    //鼠标松开组件时触发
    @Override
    public void mouseReleased(MouseEvent e) {

    }
    //鼠标进入组件时触发
    @Override
    public void mouseEntered(MouseEvent e) {

    }
    //鼠标离开组件时触发
    @Override
    public void mouseExited(MouseEvent e) {

    }

    //鼠标在组件中拖拽时触发
    @Override
    public void mouseDragged(MouseEvent e) {

    }
    //鼠标在组件中移动时触发
    @Override
    public void mouseMoved(MouseEvent e) {

    }

}

MouseEvent常用的方法:

        if(e.getButton==3){//用于流程判断
            //鼠标点击了右键时e.getButton==3
            //鼠标点击了左键键时e.getButton==1
            //鼠标点击了滚轮键时e.getButton==2
        }
        int x = e.getX();  // 获取当前鼠标的x坐标
        int y = e.getY();  //获取当前鼠标的y坐标

键盘事件监听器KeyListener

由于画图板项目并未涉及到键盘事件监听器,此处省略,日后补充。

监听ChangeEvents的ChangeListener

  • 在画图板项目中,滑动条滑动时触发
  • 添加/删除方法:addChangeListener();/removeChangeListener();
  • 接口接口实现:
public class DrawListenerFather implements  ChangeListener {
    //滑动条滑动时触发
    @Override
    public void stateChanged(ChangeEvent e) {
        //具体代码
    }
}

ChangeEvent常用的方法:

        JSlider jSlider = (JSlider)e.getSource(); //获取触发此次事件的组件对象,返回值为Object类型
        String s = jSlider.getToolTipText(); //获取滑动条的名字
        multiple =  jSlider.getValue(); //读取滑动条当前的数值

Original: https://www.cnblogs.com/classicltl/p/16125381.html
Author: classic123
Title: swing 监听器常用方法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/570201/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 实时折射、镜面反射shader

    原文链接:http://www.ceeger.com/forum/read.php?tid=3162&fid=2 Unity没有原生的实时镜面反射Shader,分享几个自己…

    Java 2023年5月30日
    074
  • 你是否听说过 HashMap 在多线程环境下操作可能会导致程序死循环?

    作者:炸鸡可乐原文出处:www.pzblog.cn 一、问题描述 经常有些面试官会问, 是否了解过 HashMap 在多线程环境下使用时可能会发生死循环,导致服务器 cpu 100…

    Java 2023年6月9日
    088
  • Mybatis源码4 Cache的实现和其原理

    Mybatis CachingExecutor, 二级缓存,缓存的实现 一丶二级缓存概述 上一章节,我们知道mybaits在构造SqlSession的时候,需要让SqlSessio…

    Java 2023年6月14日
    067
  • IDEA-SpringBoot热部署失效问题解决

    热部署的作用 springboot每次修改之后都需要重新启动才会生效,启动热部署之后每次修改会自动重启,而不用手动重启,提高开发效率。 1.添加依赖 org.springframe…

    Java 2023年5月29日
    071
  • Java的jstack命令使用详解

    jstack命令简介 jstack(Java Virtual Machine Stack Trace)是JDK提供的一个可以生成Java虚拟机当前时刻的线程快照信息的命令行工具。线…

    Java 2023年6月7日
    088
  • Mybatis系列全解(七):全息视角看Dao层两种实现方式之传统方式与代理方式

    封面:洛小汐作者:潘潘 一直以来 他们都说为了生活 便追求所谓成功 顶级薪水、名牌包包 还有学区房 · 不过 总有人丢了生活 仍一无所获 · 我比较随遇而安 有些事懒得明白 平日里…

    Java 2023年6月13日
    080
  • Spring Boot 入门(十四)使用dubbo(用redis作为注册中心)

    结尾附源码 redis安装教程参考:Spring Boot 入门(三)部署Redis服务 新建一个maven项目,划分三层 common-公共:存放服务声明 comsuer-客户端…

    Java 2023年6月5日
    095
  • 如果还不懂如何使用 Consumer 接口,来公司我当面给你讲!

    背景 没错,我还在做 XXXX 项目,还在与第三方对接接口,不同的是这次是对自己业务逻辑的处理。 在开发过程中我遇到这么一个问题: 表结构:一张主表A ,一张关联表B ,表 A 中…

    Java 2023年6月5日
    091
  • C/C++取模为什么和数学中的不同

    C/C++ 中的取模运算和数学中有什么不同 C/C++/Java 的取模运算和数学中有些不同,一定要注意!!! 先举一个简单的例子: -1 % 3 = ? 而对于这个例子,不同的程…

    Java 2023年6月5日
    087
  • Python常用类库

    1.什么是时间元组? 2.使用datetime获取今天日期及前N天日期 3.获取以秒为单位的浮点时间time(): 4.获取人可以直观理解的时间ctime(): 5.浮点时间转化为…

    Java 2023年6月7日
    097
  • LeetCode随缘刷题之截断句子

    这道题相对比较简单。正好最近学到StringBuilder就用了。 package leetcode.day_12_06; public class TruncateSentenc…

    Java 2023年6月7日
    075
  • 流程与标准

    流程把一件事分解成多个步骤,将涉及到的人都串了起来。有了研发流程,每个人就知道自己要干什么。换句话说,研发流程界定了每个人的职责范围。接着推理,如果发现职责不明确,那就是流程出了问…

    Java 2023年6月16日
    072
  • JavaFX Metro UI 和 开发库

    这是一个Windows设计风格的UI库,使用非常简单,只要一行代码就可以实现整体UI风格的替换! <span class="hljs-selector-tag&qu…

    Java 2023年6月9日
    065
  • Java中堆操作

    堆 (1)基本介绍 本质上就是一个特殊的二叉树 1、是完全二叉树 2、要求对于树的中的任意节点来说, 当前节点的值必须是大于左右孩子的值=>大堆/大根堆/大顶堆 当前节点的值…

    Java 2023年5月29日
    080
  • 日常学习用到的Git指令

    Git 常用Git指令 (本地) git init – 将文件夹初始化为Git仓库 git add – 将工作区的指定文件放入暂存区 git status …

    Java 2023年6月5日
    071
  • 定义简单的注解

    定义一个注解 @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface U…

    Java 2023年6月5日
    078
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球