千家信息网

JAVA GUI与MouseListener怎么使用

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇内容主要讲解"JAVA GUI与MouseListener怎么使用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"JAVA GUI与MouseListe
千家信息网最后更新 2026年11月04日JAVA GUI与MouseListener怎么使用

本篇内容主要讲解"JAVA GUI与MouseListener怎么使用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"JAVA GUI与MouseListener怎么使用"吧!

所谓监听器,它一定是与某个GUI部件绑定的,例如我声明了一个JFrame f,我想对他进行鼠标监听,可以使用f.addMouseListener(this);

使用MouseListener类作为JFrame的监听

import java.awt.event.*;import javax.swing.*; public class ImplementMouseListener implements MouseListener{         //注意implement后面的s,注意Listener的拼写,list'e'ner,中间有个'ten'       JFrame f;        public void ImplementMouseListener() {   //这个类的构造方法               f=new JFrame();   //注意JFrame前两个字母都是大写,不然可能产生不好发现的错误               f.addMouseListener(this); //注意括号里面需要加this,虽然不知道意义何在               f.setSize(300,150);               f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  //有点不清楚什么意思               f.setVisible(true);  //the method show from the type Window is deprecated,意思是show()这个方法以及被弃用了       }       public void mousePressed(MouseEvent e) {}       public void mouseReleased(MouseEvent e) {}       public void mouseEntered(MouseEvent e) {}       public void mouseExited(MouseEvent e) {}       public void mouseClicked(MouseEvent e) {               f.setTitle("点击坐标未"+e.getX()+","+e.getY());   //需要把JFrame声明为这个类的成员对象,而不能在构造方法中再声明,否则这句话无法运行       }              //不看主方法,上面就是一个完整的类。主方只不过相当于把运行过程放在了某个类里面显示而已       public static void main(String []args) {   //static必须在void之前,否则会报错               new ImplementMouseListener();  //不要忘记打小括号       }}

注意setTitle方法,将他与构造JFrame时的窗口名字区分开。这个setTitle也是JFrame中的方法,用于设置窗口的名字,我把他卸载了mouseCliked事件中,使得每次点击鼠标后会重新设置窗口名字

注意鼠标事件e,这个鼠标事件e中也包含很多有用的方法

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

所谓close就是指窗口栏右上角的那个叉叉,使用这个命令确定了点那个叉叉会发生什么,这条命令括号内的参数JFrame.EXIT_ON_CLOSE实际上是javax.swing.WindowContants中定义的一个常数3。

点击窗口右上角关闭,四种关闭方式

this.setDefaultCloseOperation(0);// DO_NOTHING_ON_CLOSE,不执行任何操作。this.setDefaultCloseOperation(1);//HIDE_ON_CLOSE,只隐藏界面,setVisible(false)。this.setDefaultCloseOperation(2);//DISPOSE_ON_CLOSE,隐藏并释放窗体,dispose(),当最后一个窗口被释放后,则程序也随之运行结束。this.setDefaultCloseOperation(3);//EXIT_ON_CLOSE,直接关闭应用程序,System.exit(0)。一个main函数对应一整个程序。

使用MouseAdapter类作为JFrame的监听

import java.awt.*;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import javax.swing.*;  public class ExtendMouseAdapter extends MouseAdapter{  //如果没有引入这个包,可以点击MouseAdapter,会有引入包的提示      JFrame f;  //MouseAdapeter是一个抽象类,而MouseListener是一个接口(interface)      public ExtendMouseAdapter() {              f=new JFrame("鼠标监听器测试窗口");              f.setSize(300,150);              f.addMouseListener(this);              f.setVisible(true);              f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  //JFrame.EXIT_ON_CLOSE是java.swing.WindowConstants中定义的一个常量,相当于3      }      public void mouseClicked(MouseEvent e) {   //类的第一个字母总是大写如,MouseEvent,而方法的第一个字母总是小写,如mouseClicked              f.setTitle("单击的位置是"+e.getX()+"  "+e.getY());      }            public static void main(String []args) {              new ExtendMouseAdapter();      }}

MouseAdapter与MouseListener类中实际都封装了五个鼠标事件

他们的区别在于,后者是一个接口(interface),类继承时要使用implements,并且在继承后也要对这五个方法进行实现(即使是空实现);而前者是一个抽象类,他也继承自MouseListener,并且将五个鼠标事件均搞成了空实现。

注:当一个java工程中含有多个源文件,并且有多源文件与main方法时,点击运行不会报错。

那么怎么确定到底在运行哪个主方法呢?

如图:

点击这个下拉标志,可以看到运行配置(run configurations)

在其中可以进行运行哪个主方法的设置:

不要因此就产生了构造GUI窗口时必须把它写在类的构造方法中的错觉,实际上可以随便写,比如卸载主方法中

到此,相信大家对"JAVA GUI与MouseListener怎么使用"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

方法 鼠标 运行 事件 监听 实际 名字 字母 括号 程序 内容 命令 大写 实际上 就是 意思 接口 监听器 学习 更深 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技企业 互联网是不是新科技 小马过河互联网科技 腾讯科技 互联网女皇 北京禾田雨橡互联网科技 新华互联网科技校企合作 云创客互联网科技公司 团飞科技与伯堂互联网服务平台 互联网软件和科技 港股科技和互联网 荆州市昕露互联网络科技有限公司 互联网与医疗科技 成都互联网科技公司工作好不好 链环科技传统企业怎么转型互联网 朱啸虎曾投资哪些互联网科技企业 中国互联网有什么科技 宇信科技在杭州互联网排第几 西安左小互联网科技有限公司 同城互联网络科技 现代互联网科技公司 百单网互联网科技有限公司 互联网科技公司起名 中国互联网科技股 无线互联网科技 互联网公司会议桌创意科技软装饰 深圳国际航运科技和互联网 浙江互联网科技研学营 杭州壁岐互联网科技有限公司 工业互联网展湾科技股份有限公司 兰石爱特工业互联网科技分公司
0