「java鼠标库」java模拟鼠标

博主:adminadmin 2022-12-01 02:42:09 58

今天给各位分享java鼠标库的知识,其中也会对java模拟鼠标进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

关于Java中鼠标事件处理的问题,我的代码

你这样不行啊,一闪一闪的根本看不到显示效果或者更本没有显示,绘图的方法要写在paintComponent(Graphics g)里面才能长久保存。

我知道你想在mouseClicked里面做什么,但是在这里进行绘图,repaint没有立即被执行,所以有可能没有任何显示;如果repaint执行了,也很有可能立刻被后面的绘图所覆盖。最好的办法是在这里出发一个标志,然后调用repaint函数,在paintComponent函数中对这个标志进行绘制,决定到底该怎么画。

手写了一段代码,没有编译,你可以参考一下:

package colin;

import java.awt.event.*;

import javax.swing.*;

import java.awt.*;

public class JXFrame extends JFrame

{

boolean mouseCliked = false;

int x,y;

public void paintComponent(Graphics g)

{

if(mouseCliked )

{

g.setColor(255,255,0);//必须有这一步,否则画笔颜色为默认背景色,是根本看不出任何线条效果的。

g.drawLine(0,0,x,y);

}

}

public void setPoint(int x,int y)

{

this.x = x;

this.y = y;

}

}

package colin;

import java.awt.*;

import javax.swing.*;

class frame{

frame(){

JXFrame f = new JXFrame();

f.addMouseListener(new Mouseevent(f));

f.setSize(500,600);

f.setVisible(true);

}

public static void main(String args[]){

new frame();

}

}

package colin;

import java.awt.event.*;

import javax.swing.*;

import java.awt.*;

public class Mouseevent implements MouseListener{

JXFrame parent;

public Mouseevnt(JXFrame parent){

this.parent = parent;

}

public void mousePressed(MouseEvent e){

}

public void mouseReleased(MouseEvent e){

this.parent.mouseCliked = false;

}

public void mouseEntered(MouseEvent e){

this.parent.mouseCliked = false;

}

public void mouseExited(MouseEvent e){

this.parent.mouseCliked = false;

}

public void mouseClicked(MouseEvent e){

this.parent.setPoint(e.getX(),e.getY());

this.parent.mouseCliked = true;

this.parent.repaint();

}

}

java自定义鼠标形状

希望这段代码对你有用

1.自定义个类扩展Cursor,重写Cursor的方法:

class MyCursor extends Cursor {

public MyCursor(int n) {

super(n);

}

static public Cursor getSystemCustomCursor(final String name)

throws AWTException, HeadlessException {

Toolkit toolkit = Toolkit.getDefaultToolkit();

Image image = toolkit.getImage(name);

return toolkit.createCustomCursor(

image, new Point(0, 0), "myCursor");

}

}

2.在你的程序中:

try {

String ico = "D:\\myCursor.gif";//你图标的位置

this.setCursor(MyCursor.getSystemCustomCursor(ico));

}catch(Exception ae) {

}

-------------------------------------------------------------------

在你的基础上改成下面这个样子就可以了

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import java.awt.*;

public class test extends JFrame {

public test() {

try {

this.getContentPane().setCursor(getMyCursor());

} catch (Exception e) {

}

this.setSize(640, 500); // 窗口大小为640*500

this.setVisible(true); // 窗口可见

setDefaultCloseOperation(EXIT_ON_CLOSE);

}

public static void main(String[] args) {

test m = new test();

}

public Cursor getMyCursor(){

Image img = new ImageIcon(test.class.getResource("arrow40.cur")).getImage();

return this.getToolkit().createCustomCursor(img,new Point(16,16),"mycursor");

}

}

Java 程序实现鼠标点击 键盘等事件

这个用MouseListener里的mouseEntered(MouseEvent

e)方法。

鼠标进入区域就产生事件反应。

如果之前申明了点击事件可以在entered时间里呼叫clicked事件。

java中控制鼠标点击的方法

//利用 java.awt.Robot 类来自动完成一些键盘或鼠标的动作,下面是一个小例子

//程序流程:模拟鼠标左键点击 开始--运行--CMD--DIR--CLS--EXIT

//模拟右键点击 移动到右下角--右键点击--调整日期和时间--退出

import java.awt.*;

import java.awt.event.*;

import javax.swing.JOptionPane;

//Test.java

public class Test {

public static void main(String[] args) throws Exception {

final Robot rb = new Robot();

new Thread(){

public void run(){

rb.delay(2000);

//回车

rb.keyPress(KeyEvent.VK_ENTER);

rb.keyRelease(KeyEvent.VK_ENTER);

}

}.start();

JOptionPane.showMessageDialog(null,"以下程序自动执行,包括本对话框,请不必进行人为干预.\n如果不能正常执行程序,请先关闭输入法");

//设置开始菜单的大概位置

int x = 40;

int y = Toolkit.getDefaultToolkit().getScreenSize().height-10;

//鼠标移动到开始菜单,

rb.mouseMove(x,y);

rb.delay(500);

//单击三次开始菜单

for(int i=0; i3; i++)

pressMouse(rb,InputEvent.BUTTON1_MASK,500);

rb.delay(1000);

//运行CMD命令 r cmd enter

int[] ks = {KeyEvent.VK_R,KeyEvent.VK_C,KeyEvent.VK_M,KeyEvent.VK_D,KeyEvent.VK_ENTER,};

pressKeys(rb,ks,500);

rb.mouseMove(400,400);

rb.delay(500);

//运行DIR命令 dir enter

ks = new int[]{KeyEvent.VK_D,KeyEvent.VK_I,KeyEvent.VK_R,KeyEvent.VK_ENTER};

pressKeys(rb,ks,500);

rb.delay(1000);

//运行CLS命令 cls enter

ks = new int[]{KeyEvent.VK_C,KeyEvent.VK_L,KeyEvent.VK_S,KeyEvent.VK_ENTER};

pressKeys(rb,ks,500);

rb.delay(1000);

//运行EXIT命令 exit enter

ks = new int[]{KeyEvent.VK_E,KeyEvent.VK_X,KeyEvent.VK_I,KeyEvent.VK_T,KeyEvent.VK_ENTER};

pressKeys(rb,ks,500);

rb.delay(1000);

//右键测试

x=Toolkit.getDefaultToolkit().getScreenSize().width-10;

rb.mouseMove(x, y);

//如果是双键鼠标,请改用InputEvent.BUTTON2_MASK试试,我没有这种鼠标

pressMouse(rb,InputEvent.BUTTON3_MASK,500);

//显示日期调整对话框 a

pressKeys(rb,new int[]{KeyEvent.VK_A},1000);

rb.delay(2000);

pressKeys(rb,new int[]{KeyEvent.VK_ESCAPE},0);

rb.delay(1000);

new Thread(){

public void run(){

rb.delay(1000);

//回车

rb.keyPress(KeyEvent.VK_ENTER);

rb.keyRelease(KeyEvent.VK_ENTER);

}

}.start();

JOptionPane.showMessageDialog(null,"演示完毕!");

}

//鼠标单击,要双击就连续调用

private static void pressMouse(Robot r,int m,int delay){

r.mousePress(m);

r.delay(10);

r.mouseRelease(m);

r.delay(delay);

}

//键盘输入

private static void pressKeys(Robot r,int[] ks,int delay){

for(int i=0; iks.length; i++){

r.keyPress(ks[i]);

r.delay(10);

r.keyRelease(ks[i]);

r.delay(delay);

}

}

}

Java 鼠标事件分析

我估计你还没有看到抽象类和接口,MouseListener和MouseMotionListener是两个接口,MouseEventDemo实现了这两个接口,那么他必须实现这两个接口中的所有方法。对于这个程序,可能有些方法是用不到的,那么它只能留个空方法体表示“实现”了这个方法。但其实这是不好的代码风格和编程习惯,所以Java中对于接口方法很多的那些接口提供了适配器类,所谓的适配器类,就是一个实现某个接口的类,但所有方法实现都是空方法,这样你可以继承这个类,同时继承了这些空实现,这样你只需要重写需要用到的函数版本。

而适配器通常使用匿名内部类实现的。

this.addMouseListener(new MouseAdapter(){

public void mousePressed(MouseEvent me){

txtStatus.setText("按下");

}

public void mouseReleased(MouseEvent me){

txtStatus.setText("释放");

}

});

在这个匿名类中就不需要那些空方法了,当然用这种方法,implements 后面的东西也可以不要了。

当然如果你对Java刚入门,对继承接口之类的还不了解,则不一定明白我在说什么。

至于main函数中的 MouseEventDemo med=new MouseEventDemo();

new MouseEventDemo是声明了一个新的对象,并把它赋给了med引用,这样你可以用这个引用调用这个类中的方法。例如这个类有继承自JFrame的setTitle方法,你可以med.setTitle("dfdfd");

光一个new MouseEventDemo则没有被引用罢了,但本质上他们都调用了这个类的构造函数。只不过当构造函数结束后,如果是单线程,后者会被垃圾回收,前者不会。因为还有对象引用存在,这在你看到垃圾回收机制后才能明白,如果向这里一样GUI内部的多线程机制,则在那个线程结束后,后者会被垃圾回收,前者不会。

当然对于这个程序而言加个引用没多大意义。

总之,你的路还长着呢。。。。。。

java中的外部库是什么?

java 库是 java 运行环境自带的库, 类似你自己会的技能, 例如走路,唱歌等. 随时随地可以发动技能

外部库是别人为 java 写的库, java 可以调用. 一般是 jar 文件或单个 class 文件. 类似别人的技能. 你会的再多也不可能把所有技能学会. 这样当你需要时可以找一个会这个技能的人来帮你完成.

关于java鼠标库和java模拟鼠标的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-01,除非注明,否则均为首码项目网原创文章,转载请注明出处。