如何用JAVA编一个 鼠标在在屏幕上移动的 并点击的 程序?
楼主,请看 java.awt.Robot 这个类,有你所需要的。
void
mouseMove(int x,
int y)
将鼠标指针移动到给定屏幕坐标。
void
mousePress(int buttons)
按下一个或多个鼠标按钮。
这是因为一刚运行程序就会收到一个mouseMoved消息
lz可以这么做
首先给你的窗口类添加成员变量
private int x=-99999;
private int y=-99999;
然后这样定义事件处理
public void mouseMoved(MouseEvent ee){
if(this.x!=-99999){
int dx=x-ee.getX();
int dy=y-ee.getY();
if(Math.abs(dx)>10||Math.abs(dy)>10)//判断鼠标移动的幅度,超过一定限度再退出,避免误操作,lz这里可以自由调整
{
System.exit(0);
}
}
this.x=ee.getX();
this.y=ee.getY();
}
相关类都在
import java.awt.*;
import javax.swing.* ;
动作事件相关类在import java.awt.event.*;中,在代码头import就可以看了
给一个相关的代码吧,包括所有的鼠标事件。
下面代码包括
按下,释放,进入区域,离开区域,点击 这5个事件
鼠标的相关事件会在窗口上方的文本区显示。。。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class TestMouseEvent extends JFrame implements MouseListener{
JPanel jp = new JPanel();
JTextField jtf = new JTextField();
public TestMouseEvent(){
setTitle("Mouse Event");
getContentPane().add(jtf,BorderLayout.NORTH);
getContentPane().add(jp,BorderLayout.CENTER);
jp.addMouseListener(this);
}
public static void main(String[] args){
TestMouseEvent frame = new TestMouseEvent();
frame.setSize(200,200);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void mousePressed(MouseEvent e){
int x = e.getX();
int y = e.getY();
String s = "鼠标在坐标"+"("+x+","+y+")"+"出按下";
jtf.setText(s);
}
public void mouseReleased(MouseEvent e){
int x = e.getX();
int y = e.getY();
String s = "鼠标在坐标"+"("+x+","+y+")"+"出释放";
jtf.setText(s);
}
public void mouseClicked(MouseEvent e){
int x = e.getX();
int y = e.getY();
String s = "鼠标在坐标"+"("+x+","+y+")"+"出点击";
jtf.setText(s);
}
public void mouseEntered(MouseEvent e){
int x = e.getX();
int y = e.getY();
String s = "鼠标在坐标"+"("+x+","+y+")"+"出进入";
jtf.setText(s);
}
public void mouseExited(MouseEvent e){
int x = e.getX();
int y = e.getY();
String s = "鼠标在坐标"+"("+x+","+y+")"+"出离开";
jtf.setText(s);
}
}
//JAVA中的 java.awt.Robot 类可以操作鼠标和键盘的动作
//以下程序将随机移动鼠标,只有当鼠标移动到屏幕中间红色的小窗口上时,才会点击一下,然后退出程序
//: 保存成: AutoMouseTest.java ,编译运行就行了
import java.awt.Color;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JWindow;
public class AutoMouseTest {
public static void main(String[] args) throws Exception {
moveAndClick(new Win());
}
private static void moveAndClick(final Win win) throws Exception{
final Robot r = new Robot();
new Thread(){
public void run(){
int w = Toolkit.getDefaultToolkit().getScreenSize().width;
int h = Toolkit.getDefaultToolkit().getScreenSize().height;
while(!win.stop){
//随机产生 x,y 坐标
int x=(int)(Math.random()*w);
int y=(int)(Math.random()*h);
//鼠标移动到 x,y
r.mouseMove(x, y);
//为了不乱点鼠标,设置条件:只有当鼠标到红色的 WIN 上才点击!
if(win.win.getBounds().contains(x,y)){
//按下鼠标
r.mousePress(MouseEvent.BUTTON1_MASK);
//释放鼠标
r.mouseRelease(MouseEvent.BUTTON1_MASK);
}
String info = "<html>x:"+x+"<br/>y:"+y;
//显示鼠标当前坐标的信息
win.setInfo(info);
try {sleep(50);} catch (Exception e) {}
}
}
}.start();
}
}
class Win{
JWindow win = new JWindow();
JLabel info = new JLabel();
boolean stop;
public void setInfo(String s){info.setText(s);}
Win(){
info.setOpaque(true);
info.setBackground(Color.red);
info.setHorizontalAlignment(JLabel.CENTER);
win.setSize(80,50);
win.setAlwaysOnTop(true);
win.add(info);
win.setLocationRelativeTo(null);
win.setVisible(true);
win.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
stop=true;
win.setVisible(false);
JOptionPane.showMessageDialog(win,"鼠标已移动到了WIN上面,并点击了一下,程序将退出!");
System.exit(0);
}
});
win.setVisible(true);
}
}
你可以参考以一下这个程序,有鼠标的移动,点击
import javax.swing.*;
import java.awt.event.*;
import javax.swing.*;
public class TestMouseEvent extends JFrame{
private JTextArea jta;
private JLabel jlab;
JScrollPane jsp;
public TestMouseEvent(){
jta=new JTextArea(20,20);
jlab=new JLabel("鼠标位置信息");
jsp=new JScrollPane(jta);
addEventHandle();
this.add(jsp);
this.add(jlab,"South");
this.setSize(400, 400);
this.setLocation(200, 200);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void addEventHandle(){
jta.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
jta.append("鼠标被点击:("+e.getX()+","+e.getY()+")\n");
}
public void mouseEntered(MouseEvent e){
jta.append("鼠标进入\n");
}
public void mouseExited(MouseEvent e){
jta.append("鼠标移出\n");
}
});
jta.addMouseMotionListener(new MouseMotionAdapter(){
public void mouseMoved(MouseEvent e){
jlab.setText("鼠标当前位置:("+e.getX()+","+e.getY()+")\n");
}
});
}
public static void main(String[] args) {
new TestMouseEvent();
}
}
怎样把一个java源代码做成一个软件成品?
其实就是用一个外部程序 调用java虚拟机运行你的java程序。可以做一个批处理文件,在里面调用java 虚拟机运行你的java程序。也可以用某种编程语言,像vb ,c 或c++编个程序,生成exe,能调用java虚拟机运行你的程序,很简单的。【源代码】源代码(也称源程序),是指一系列人类可读的计算机语言指令。
使用JAVA编写一个程序
获取键盘输入Scanner scanner = new Scanner(System.in);\/\/ 用k来存储0~1000的随机数k = random.nextInt(1000);System.out.println("游戏开始,请输入一个在0~1000内的数");\/\/用i来获取键盘输入i = scanner.nextInt();\/\/当i不等于k时,进行循环while (i != k) {n++;if (i > k) {...
用JAVA编:输入一个整数n,再输入n个整数,输出这n个整数的最大值。
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;\/ \/ public class CopyOftest { public static boolean flag = true;static char c;public static void main(String[] args) { int[] s = null;int max =0;try { System.out.println("请输一个...
用JAVA编写一个简单的计算器,要求如下:
然后 通过输入 显示结果,比如说:以下是上图计算器的代码:package Computer;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util....
用java编写一个统计投票结果程序
先定义一个学生的对象,里面有名字,和票数两个属性,再定义一个排序函数,返回值为数组,就是取得三个数的数组,打印输出,或者可以自己想一个更加面向对象的结构实现,在简单问题上多用面向对象去思考问题 。import java.util.Scanner;public class Test { public static void main(String args[]) {...
用JAVA编写一个程序
import java.util.Scanner;public class Book { private String bookname;private String bookno;private double bookprice;private int bookamount;public Book(String bookname, String bookno, double bookprice, int bookamount) { super();this.bookname = bookname;this.bookno = bookno;this....
用JAVA编写一个小游戏
\/\/获取一个1-100的随机数 System.out.println("你获取的随机数是:"+c); \/\/打印你的随机数字 String str1 = (String) JOptionPane.showInputDialog(null,"请输入你的猜测数字(1-100):\\n","猜数字游戏",JOptionPane.PLAIN_MESSAGE,icon,null,"在这输入"); \/\/第一次输入你的猜测数...
用JAVA编写的一个简易浏览器。
这还有一个 import java.awt.*;import java.awt.event.*;import java.net.URL;import javax.swing.*;\/\/html浏览器 public class HTTPBrowserDemo extends JFrame{ JTextField jtfAddress; \/\/输入html文件地址或网址 JButton jbGo; \/\/转到文件按钮 JTextPane jtpShow; \/\/显示文件 JLabel jlInfo; \/...
用java编写一个程序求1!+2!+...10!
用Java编程写程序求1!+2!+...10!,只需用两个循环层,第一个循环是阶乘值相加,第二个循环是获取阶乘值,如下:public class TestD {public static void main(String[] args){\/\/1!+2!+3!+···+10!就是1到10阶乘值的和int sum=0;\/\/循环10次for(int x=1;x<=10;x++){\/\/阶乘初...
如何用java一步步编出一个记事本程序
如何用java一步步编出一个记事本程序 我想开始做这个项目,但是不知道从哪里入手,请大家教一下我~但是不用提供那些长长的代码了,我有很多了,我要了解的是它的步骤,以及要具备那些基础等,请大家尽量帮一下我,这对我... 我想开始做这个项目,但是不知道从哪里入手,请大家教一下我~但是不用提供那些长长的代码...
泰威恬信: //JAVA中的 java.awt.Robot 类可以操作鼠标和键盘的动作//以下程序将随机移动鼠标,只有当鼠标移动到屏幕中间红色的小窗口上时,才会点击一下,然后退出程序//: 保存成: AutoMouseTest.java ,编译运行就行了 import java.awt.Color; import...
吴川市17591954474: 在Java中有没有一个方法可以让鼠标移到某个位置 - ?
泰威恬信: java.awt.Robot类中的 mouseMove(int x, int y)将鼠标指针移动到给定屏幕坐标.
吴川市17591954474: 怎样得到在屏幕中(java窗体外)鼠标位置? - ?
泰威恬信: Point mousePoint = MouseInfo.getPointerInfo().getLocation(); 这个最简单,对Java版本没什么要求.
吴川市17591954474: 编写一个Java程序,在程序中建立一个窗口,在文本框中显示鼠标的信息.要求运行结果如图1所示. - ?
泰威恬信: private static TextField tf; private static Frame f; public static void main(String[] args) { f = new Frame("鼠标事件窗口");// f.setSize(500, 400); // f.setLocation(400, 200); f.setBounds(400, 200, 400,200);f.setLayout(null); //f.setLayout(new ...
吴川市17591954474: java中怎样制作将鼠标放置在标题上可以相应显示信息,只是将鼠标放置在上面不需要点击就可以显示信息?
泰威恬信: 用js,设置onmouseover事件即在你的标题标签里加上onmouseover="alert('写你想显示的内容!')"就ok了不用点击.这个js好好看看这些功能经常用,他不仅有显示文本的功能图片啊函数啊都可以调用,多看看
吴川市17591954474: java编程,窗体有一个a的标签,标签的初始内容为“鼠标的状态会在这里显示”.要求如下: - ?
泰威恬信: 很简单嘛!!!!构造方法中a.addMouseListener(new MouseListener(){ @Override public void mouseEntered(MouseEvent arg0) { // TODO 自动生成的方法存根 a.setText("鼠标进入"); } @Override public void mouseExited(MouseEvent arg0) { // TODO 自动生成的方法存根 a.setText("鼠标离开"); } 其他方法略
吴川市17591954474: JAVA如何捕获和输出鼠标在屏幕上的点击呢??
泰威恬信: 这个也不是50分能解决的问题! 纯JAVA和程序目前没有更好的解决办法,目前JAVA可以知道鼠标当前位置,以及鼠标某处的象素颜色等有限的信息,对于鼠标的行为是没有办法捕捉的,不过ROBOT类可以驱动鼠标和键盘做一些事. 如果想达到楼主的要求,看来JNI是比较可行的办法!
吴川市17591954474: 用java做出一个界面,鼠标每一次点击的圆点都能在界面中移动,谢谢 - ?
泰威恬信: 你这描述不太清楚,做出个什么界面,java自带中的swing,还是自己做一个界面,鼠标点击的圆点如何移动(添加mouselistener,获取鼠标的坐标后,传到类里面写具体的移动).如果你还不是很了解java,可以看一下云课堂的视频,先学习下全部基础知识,个人感觉挺不错的.
吴川市17591954474: Java中如何设置小键盘 就是用鼠标在屏幕上可以点击的那种 - ?
泰威恬信: 使用java的swing类里面的各种子类和方法,比如JButton
吴川市17591954474: 在java中怎么绘制鼠标图标!比如把鼠标放到jframec窗体中能够把鼠标的箭头换成图片!谢谢 - ?
泰威恬信: JFrame里有继承的方法的 setCursor public void setCursor(Cursor cursor) 要设置图片 再用到ToolKit里的 createCustomCursor public Cursor createCustomCursor(Image cursor, Point hotSpot, String name) throws IndexOutOfBoundsException, HeadlessException 那个Image就是你要导入的图 推介用ImageIcon("路径").getImage();