`

JavaSwing鼠标的操作

阅读更多

JavaSwing的鼠标操作函数

MouseListener的使用: 

MouseListener

mouseClicked(MouseEvent e)

mouseEntered(MouseEvent e)

mouseExited(MouseEvent e)

mousePressed(MouseEvent e)

mouseReleased(MouseEvent e) 

下面我给大家举例说明一下以上方法的操作。

package com;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
 * 
 * @author chenhailong
 *
 */
public class MouseDemo1 extends WindowAdapter implements MouseListener{
    JFrame f=null;
    JButton b1=null;
    JLabel label=null;
    
    public MouseDemo1(){
       f=new JFrame("MouseDemo1");
       Container contentPane=f.getContentPane();
       contentPane.setLayout(new GridLayout(2,1));
       b1=new JButton("按钮");
       label=new JLabel("起始状态,还没有鼠标事件",JLabel.CENTER);
       b1.addMouseListener(this);
       contentPane.add(label);
       contentPane.add(b1);
       f.pack();
       f.setVisible(true);
       f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       f.addWindowListener(this);
    }
    public void mousePressed(MouseEvent e){
        label.setText("你已经压下鼠标按钮");
    }
    public void mouseReleased(MouseEvent e){
        label.setText("你已经放开鼠标按钮");
    }
    public void mouseEntered(MouseEvent e){
        label.setText("鼠标光标进入按钮");
    }
    public void mouseExited(MouseEvent e){
        label.setText("鼠标光标离开按钮");
    }
    public void mouseClicked(MouseEvent e){
        label.setText("你已经按下按钮");
    }
    public void windowClosing(WindowEvent e){
        System.exit(0);
    }
    public static void main(String[] args){
       new MouseDemo1();	
    }
}

MouseMotionListener的使用: 下面是讨论MouseMotionListener的使用时机,它提供的下面的两个方法,可让你随时掌握鼠标的坐标,并处理拖曳鼠标 的操作。

MouseMotionListener

mouseDragged(MouseEvent e)

mouseMoved(MouseEvent e)

下面的范例让你知道鼠标在JFrame上的坐标,并拖曳出直线来。

package com;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
 * 
 * @author chenhailong
 *
 */
public class MouseDemo2 extends JFrame implements MouseListener,
		MouseMotionListener {

	/**
	 * 
	 */
	private static final long serialVersionUID = 532664972197143944L;
	int flag;// flag=1代表Mouse Moved,flag=2代表Mouse Dragged
	int x = 0;
	int y = 0;
	int startx, starty, endx, endy;// 起始坐标与终点坐标
	public MouseDemo2() {
		Container contentPane = getContentPane();
		contentPane.addMouseListener(this);
		contentPane.addMouseMotionListener(this);
		setSize(300, 300);
		setVisible(true);
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
	}

	/* 由mousePressed(),mouseReleased()取得示拖曳的开始与结束坐标 */
	public void mousePressed(MouseEvent e) {
		startx = e.getX();
		starty = e.getY();
	}

	public void mouseReleased(MouseEvent e) {
		endx = e.getX();
		endy = e.getY();
	}

	public void mouseEntered(MouseEvent e) {
	}

	public void mouseExited(MouseEvent e) {
	}

	public void mouseClicked(MouseEvent e) {
	}

	/* mouseMoved(),mouseDragged()取得鼠标移动的每一个坐标,并调用repaint()方法 */
	public void mouseMoved(MouseEvent e) {
		flag = 1;
		x = e.getX();
		y = e.getY();
		repaint();
	}

	public void mouseDragged(MouseEvent e) {
		flag = 2;
		x = e.getX();
		y = e.getY();
		repaint();
	}

	public void update(Graphics g) {
		g.setColor(this.getBackground());
		g.fillRect(0, 0, getWidth(), getHeight());
		paint(g);
	}

	public void paint(Graphics g) {
		g.setColor(Color.black);
		if (flag == 1) {
			g.clearRect(0, 0, 300, 300);
			g.drawString("鼠标坐标:(" + x + "," + y + ")",10,50);
			g.drawLine(startx, starty, endx, endy);
		}
		if (flag == 2) {
			g.clearRect(0, 0, 300, 300);
			g.drawString("拖曳鼠标价坐标:(" + x + "," + y + ")", 10, 50);
			g.drawLine(startx, starty, x, y);
		}
	}

	public static void main(String[] args) {
		new MouseDemo2();
	}
}

 哈哈哦,好了大家尝试一下,就知道他的妙用了。。

0
0
分享到:
评论

相关推荐

    java swing 鼠标自动移动

    综上所述,"java swing 鼠标自动移动"项目结合了Java Swing GUI编程、鼠标事件处理、Robot类的使用、以及应用打包技术,为开发者提供了一个实用的示例,展示了如何在Java环境中实现鼠标自动移动。

    Java Swing 鼠标手势

    在这个特定的上下文中,我们关注的是“Java Swing鼠标手势”这一主题,这是一种增强用户交互性的技术,允许用户通过特定的鼠标动作执行预定义的操作。 鼠标手势是一种非传统的人机交互方式,它允许用户通过在屏幕上...

    Java swing鼠标拖拽功能源码

    在Java Swing库中,实现鼠标拖拽功能是构建桌面应用程序时常见的需求,它涉及到事件处理、组件交互以及图形用户界面(GUI)的设计。本源码着重于如何在Swing组件上实现鼠标拖放操作,这对于创建自定义组件或增强已有...

    java swing漂亮界面(超酷) javaswing教程

    文档"javaswing教程.doc"应该包含了详细的步骤、实例代码以及最佳实践,帮助你深入理解和掌握Java Swing的界面设计技巧。 总之,Java Swing不仅是一个强大的工具集,也是开发者实现桌面应用创新设计的关键。通过这...

    java swing漂亮界面 超酷 javaswing教程

    在“Java Swing漂亮界面 超酷 JavaSwing教程”中,我们主要会探讨如何利用Swing来设计美观且用户友好的界面。Swing组件的一大优点是它们是轻量级的,这意味着它们完全由Java代码实现,而不是依赖于操作系统提供的...

    JAVA swing中文离线API文档

    此外,Swing还提供了诸如`JTable`和`JList`这样的组件,用于展示和操作数据表格或列表。 事件处理是Swing应用中的关键部分。通过实现监听器接口,如`ActionListener`,开发者可以响应用户的点击、键盘输入等事件。...

    java获取鼠标坐标位置swing

    这为开发者提供了一种直观的方式来监控和响应用户在应用中的鼠标操作。 总结一下,Java Swing 提供了丰富的组件和事件处理机制,使得我们能够轻松获取和响应鼠标在窗口内的位置。通过实现`MouseMotionListener`接口...

    Java Swing 24种皮肤合集以及使用方法

    使用Java Swing的皮肤不仅可以改变组件的颜色、字体、边框等视觉元素,还能调整组件的交互效果,如鼠标悬停、点击反馈等。对于开发者来说,灵活的L&F支持让Java Swing成为了构建跨平台应用程序的有力工具,而这个...

    swing 鼠标事件 loading效果

    在Java的Swing库中,鼠标事件(Mouse Events)是用户与GUI组件交互的重要部分,而loading效果则通常指的是在处理耗时操作时显示的一种视觉指示,以告知用户程序正在运行且尚未完成。本篇文章将深入探讨如何在Swing...

    java swing 画图板

    在这个"java swing 画图板"项目中,开发者仿照了Windows操作系统中的“画图”程序,提供了一个基本的绘图环境。下面将详细讨论相关的Java Swing知识点。 1. **组件(Components)**:在Swing中,JFrame是窗口的基础...

    java swing界面设计

    - "Java图形用户界面设计(Swing常用组件).ppt"和"JavaSwing界面设计(所有控件及示例).ppt"两个文件中可能包含了各种Swing组件的使用示例和实际应用,建议仔细学习和实践。 9. **学习资源** - Java官方文档:提供...

    学生选课和成绩管理系统 基于JAVASWing 键盘鼠标事件监听 JDBC 文件IO流

    在本系统中,Swing被用来创建用户友好的交互界面,包括菜单栏、按钮、文本框等元素,通过键盘和鼠标事件监听,实现了用户操作的实时响应,例如点击“选课”按钮后触发选课操作。 其次,数据库管理是系统的核心部分...

    Java Swing打猎射击游戏

    Swing组件是轻量级的,这意味着它们大部分是用Java代码实现的,而不是依赖于操作系统提供的本地GUI组件,这使得Swing应用程序具有跨平台兼容性。 在这个游戏中,可能使用了JFrame作为主窗口,它是Swing应用程序的...

    javaswing详解

    1. 轻量级与重量级组件:Swing组件是轻量级的,基于Java的AWT(Abstract Window Toolkit)组件,比AWT更加高效,因为它们不依赖于操作系统底层的图形系统。 2. MVC设计模式:Swing组件遵循模型-视图-控制器(MVC)...

    JavaSwing界面设计(所有控件及示例)

    Java Swing 是Java编程语言中用于构建图形用户界面(GUI)的一个强大的工具包。它是对早期的Abstract Window Toolkit (AWT) 的扩展,提供了更丰富的功能和更好的平台独立性。Swing 包含了大量的组件,使得开发者可以...

    JavaSwing小程序

    通过实现EventListener接口或者使用匿名内部类,我们可以为组件添加事件监听器,如ActionListener、MouseListener、KeyListener等,以响应用户的点击、按键、鼠标移动等操作。 4. **模型-视图-控制器(MVC)**:...

    Java Swing 拼图 简单的 实例

    Java Swing 是Java GUI(图形用户界面)开发的一个重要库,它是Java Foundation Classes (JFC) 的一部分,提供了丰富的组件和接口来创建桌面应用程序。在这个"Java Swing 拼图 简单的实例"中,我们将探讨如何使用...

    swing鼠标右键功能实现

    在Swing中实现鼠标右键功能,主要是通过`MouseListener`监听鼠标事件,特别是`mouseClicked`事件中的右键单击行为。同时,需要使用`JPopupMenu`来创建弹出式菜单,显示用户定义的菜单项。以下是根据提供的代码和描述...

    java swing围棋游戏

    6. **用户交互**:Swing提供了丰富的API来处理用户输入,如鼠标点击和键盘操作。开发者可能还需要处理悔棋、重新开始、保存和加载游戏进度等功能。 7. **图形绘制**:Swing允许自定义组件进行图形绘制,如绘制棋子...

    java SWING 做的通讯录

    总结来说,"java SWING 做的通讯录"是一个利用Java Swing库构建的桌面应用,它集成了数据库操作,允许用户管理联系人信息。通过Swing组件和JDBC,开发者可以创建出功能丰富的用户界面并实现与数据库的高效交互。这个...

Global site tag (gtag.js) - Google Analytics