#开始

  不管是什么GUI 按钮的存在都是必不可少的而且还会有很多奇怪的按钮


#代码

  

 package window;

 import java.awt.Container;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel; public class JFrameWindow extends JFrame{ //需要继承JFrame public JFrameWindow(String title)
{
JFrame jf = new JFrame(title);
Container conn = jf.getContentPane(); //得到窗口的容器
conn.setLayout(null); //设置布局方式为空 也就是绝对布局
JLabel L1 = new JLabel("Hello,world!"); //创建一个标签 并设置初始内容
L1.setBounds(50,20,100,20); JButton B1 = new JButton("按钮1"); //创建一个按钮
B1.setBounds(100,50,100,30); //设置按钮的大小和位置 B1.addMouseListener(new MouseAdapter() { //添加一个鼠标事件监听器
public void mousePressed(MouseEvent e) {
if(e.getButton()==MouseEvent.BUTTON1) //按下左键
{
System.out.println("鼠标左键");
if(e.getClickCount()==2)
{
System.out.println("双击了");
}
} if(e.getButton()==MouseEvent.BUTTON2) //按下中键的滚轮
{
System.out.println("鼠标中键");
} if(e.getButton()==MouseEvent.BUTTON3) //按下右键
{
System.out.println("鼠标右键");
}
}
}); conn.add(L1);
conn.add(B1); //添加到容器 jf.setBounds(200,200,300,200); //设置窗口的属性 窗口位置以及窗口的大小
jf.setVisible(true);//设置窗口可见
jf.setDefaultCloseOperation(DISPOSE_ON_CLOSE); //设置关闭方式 如果不设置的话 似乎关闭窗口之后不会退出程序
} public static void main(String[] args) {
new JFrameWindow("窗口"); //创建窗口
} }

#分析

  这次的代码是上次的代码添加了几行 添加了一个鼠标监听器

  在按钮上面有鼠标消息之后 会在方法里面传入一个MouseEvent 对象 包含了事件的各种数据 例如按下了什么按键 按了几次 坐标

  需要注意的是 这里是鼠标监听器 而不是按钮事件监听器 这就意味着 如果给标签添加一个监听器 就可以把标签当作按钮用

#运行结果

  

#技巧

  1. 这种监听鼠标的方式不仅仅可以监听按钮

JFrame图形界面 ----鼠标消息的更多相关文章

  1. Java JFrame图形界面 ----一个简单的窗口

    #开始 申请博客已经有一段时间了 但是一直没有时间写博文(其实还是懒虫侵蚀了大脑) 最近正在学习JFrame做窗口 遇到了很多的问题 为了解决问题也谋杀了很多的脑细胞 为了让更多的朋友不死的很多脑细胞 ...

  2. JFrame图形界面 ----绝对布局和按钮

    开始 绝对布局应该是最简单的一种布局方式了,只需要确定好大小和位置就可以固定不变 代码 ` package window; import java.awt.Color; import java.awt ...

  3. OpenCV3添加滑动条和鼠标事件到图形界面

    鼠标事件和滑动条控制在计算机视觉和OpenCV中非常有用,使用这些控件,用户可以直接与图形界面交互,改变输入图像或者变量的属性值. /* In this section, we are going t ...

  4. 界面控件 - 滚动条ScrollBar(对滚动条消息和鼠标消息结合讲的不错)

    界面是人机交互的门户,对产品至关重要.在界面开发中只有想不到没有做不到的,有好的想法,当然要尝试着做出来.对滚动条的扩展,现在有很多类是的例子. VS2015的代码编辑是非常强大的,其中有一个功能可以 ...

  5. OnClick事件的Sender参数的前世今生——TWinControl.WinProc优先捕捉到鼠标消息,然后使用IsControlMouseMsg函数进行消息转发给图形子控件(意外发现OnClick是由WM_LBUTTONUP触发的)

    这是一个再普通不过的Button1Click执行体: procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage('I am B ...

  6. 实验十四 Swing图形界面组件

    实验十四  Swing图形界面组件 实验时间 20178-11-29 1.实验目的与要求 (1) 掌握GUI布局管理器用法: (2) 掌握各类Java Swing组件用途及常用API: 2.实验内容和 ...

  7. Java中的图形界面编程

    前言 正文 Java中的图形界面编程 AWT/Swing AWT(Abstract Window ToolKits,抽象窗体工具集) 1.容器类:用来存储组件,实现容器布局 2.组件类:实现界面的一些 ...

  8. java 图形界面 Socket编程

    一.使用图形界面实现客户端服务器端的通信: 上代码: 服务器端代码: package cn.MyNET; import java.io.*; import java.net.*; import jav ...

  9. Java第5次实验提纲(Java图形界面编程)

    1. Swing与NetBeans 使用NetBeans编写简单界面.见GUI实验参考文件中的0.第06次实验(图形程序设计.事件处理与Swing).doc 题目1: Swing用户界面组件与事件处理 ...

随机推荐

  1. 操作系统 - Linux进程实现的内部结构

    在进程描述符中进入几个字段来表示进程之间的父子关系和兄弟关系. 图3-4显示了一组进程间的亲属关系. 表3-4:建立非亲属关系的进程描述符字段 在某些情况下,内核必须能从进程的PID到处对应的进程描述 ...

  2. 嵌入式C快速翻转一个任何类型的数的二进制位

    unsigned char reverse_bits(unsigned char value) { unsigned char answer , i ; answer = 0 ; for(i = 1 ...

  3. Vim编译器的常用使用方法与技巧

    vim操作 插入模式         命令行模式         末行模式 命令行模式  ->   插入模式 i --->   在当前光标的前一个插入 I --->   在行首插入 ...

  4. PS 图像调整算法——黑白

    这个算法是参考自 阿发伯 的博客: http://blog.csdn.net/maozefa 黑白调整 Photoshop CS的图像黑白调整功能,是通过对红.黄.绿.青.蓝和洋红等6种颜色的比例调节 ...

  5. iOS自定义多参数类型方法

    前几天做自定义UIAlertView的时候,想仿造系统自带的初始化方法做一个AlertView,里面涉及到不确定多参数的设置和使用问题.这里做一下记录. 我自定义了一个方法: - (instancet ...

  6. Global Financial Applications uses the following Public tables

    来自文档: Oracle  Financial Applications Technical Reference Manual  更多明细参考文档 Table Name                 ...

  7. android gif动画开源框架android-gif-drawable

    地址:https://github.com/koral--/android-gif-drawable   github里介绍挺详细的 项目中需要显示gif图片,并对用户体验有较高的要求,之前一直在使用 ...

  8. OpenCV x64 vs2010 下打开摄像头录制视频写成avi(代码为转载)

    首先参照下面这里进行opencv x64位机器下面的配置 http://wiki.opencv.org.cn/index.php/VC_2010%E4%B8%8B%E5%AE%89%E8%A3%85O ...

  9. Oracle经常用到的一些函数

    1.数字函数 NVL( string1, replace_with) :如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL ...

  10. UML类图中连接线与箭头的含义(转)

    UML类图是描述类之间的关系 概念 类(Class):使用三层矩形框表示. 第一层显示类的名称,如果是抽象类,则就用斜体显示. 第二层是字段和属性. 第三层是类的方法. 注意前面的符号,'+'表示pu ...