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

  • 相关阅读:
    Zepto跨域请求
    C语言中浮点数的比较
    IOS开源项目Telegram初试
    Java NIO初试
    ios8.0之后注册通知中心
    spring AOP的配置
    IOS学习日记-2014年10月25日
    struct框架中实体类中属性的类型错误问题
    Oracle存储过程使用DML语句问题
    跳出类似framset 嵌入式框架
  • 原文地址:https://www.cnblogs.com/cjdty/p/8948281.html
Copyright © 2020-2023  润新知