JFrame图形界面 ----鼠标消息
#开始
不管是什么GUI 按钮的存在都是必不可少的而且还会有很多奇怪的按钮
#代码
1 package window; 2 3 import java.awt.Container; 4 import java.awt.event.MouseAdapter; 5 import java.awt.event.MouseEvent; 6 7 import javax.swing.JButton; 8 import javax.swing.JFrame; 9 import javax.swing.JLabel; 10 11 12 13 public class JFrameWindow extends JFrame{ //需要继承JFrame 14 15 public JFrameWindow(String title) 16 { 17 JFrame jf = new JFrame(title); 18 Container conn = jf.getContentPane(); //得到窗口的容器 19 conn.setLayout(null); //设置布局方式为空 也就是绝对布局 20 JLabel L1 = new JLabel("Hello,world!"); //创建一个标签 并设置初始内容 21 L1.setBounds(50,20,100,20); 22 23 JButton B1 = new JButton("按钮1"); //创建一个按钮 24 B1.setBounds(100,50,100,30); //设置按钮的大小和位置 25 26 B1.addMouseListener(new MouseAdapter() { //添加一个鼠标事件监听器 27 public void mousePressed(MouseEvent e) { 28 if(e.getButton()==MouseEvent.BUTTON1) //按下左键 29 { 30 System.out.println("鼠标左键"); 31 if(e.getClickCount()==2) 32 { 33 System.out.println("双击了"); 34 } 35 } 36 37 if(e.getButton()==MouseEvent.BUTTON2) //按下中键的滚轮 38 { 39 System.out.println("鼠标中键"); 40 } 41 42 if(e.getButton()==MouseEvent.BUTTON3) //按下右键 43 { 44 System.out.println("鼠标右键"); 45 } 46 } 47 }); 48 49 50 conn.add(L1); 51 conn.add(B1); //添加到容器 52 53 jf.setBounds(200,200,300,200); //设置窗口的属性 窗口位置以及窗口的大小 54 jf.setVisible(true);//设置窗口可见 55 jf.setDefaultCloseOperation(DISPOSE_ON_CLOSE); //设置关闭方式 如果不设置的话 似乎关闭窗口之后不会退出程序 56 } 57 58 public static void main(String[] args) { 59 new JFrameWindow("窗口"); //创建窗口 60 } 61 62 }
#分析
这次的代码是上次的代码添加了几行 添加了一个鼠标监听器
在按钮上面有鼠标消息之后 会在方法里面传入一个MouseEvent 对象 包含了事件的各种数据 例如按下了什么按键 按了几次 坐标
需要注意的是 这里是鼠标监听器 而不是按钮事件监听器 这就意味着 如果给标签添加一个监听器 就可以把标签当作按钮用
#运行结果
#技巧
1. 这种监听鼠标的方式不仅仅可以监听按钮
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库