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. 这种监听鼠标的方式不仅仅可以监听按钮

 

作者:cjdty

出处:https://www.cnblogs.com/cjdty/p/8948281.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   Startu  阅读(833)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
more_horiz
keyboard_arrow_up light_mode palette
选择主题
点击右上角即可分享
微信分享提示