扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
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 = "htmlx:" + 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 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);
}
}
这个用MouseListener里的mouseEntered(MouseEvent
e)方法。
鼠标进入区域就产生事件反应。
如果之前申明了点击事件可以在entered时间里呼叫clicked事件。
java鼠标点击事件的方法如下:
span style="font-family:Verdana;"事件源/span.addMouseListener(new MouseAdapter() {//建立事件处理机制
@Override
public void mouseClicked(MouseEvent e) {
if(e.getButton()==e.BUTTON1){//点击鼠标左键
int x=e.getX();
int y=e.getY();
String str="您点击的是左键,鼠标当前点击位置的坐标是(" + x + "," + y+")";
label.setText(str);
}else if(e.getButton()==e.BUTTON2){//点击鼠标滑轮
int x=e.getX();
int y=e.getY();
String str="您点击的是滑轮,鼠标当前点击位置的坐标是(" + x + "," + y+")";
label.setText(str);
}
else if(e.getButton()==e.BUTTON3){//点击鼠标右键
int x=e.getX();
int y=e.getY();
String str="您点击的是右键,鼠标当前点击位置的坐标是(" + x + "," + y+")";
label.setText(str);
}
}
});
e.getButton()返回值分别为NOBUTTON、BUTTON1、BUTTON2、BUTTON3,分别代表着无点击、左击、中间键、右击三种情况。
给Java初学者的建议:
1,不一定要把java学深入。有多少人搞程序是喜欢这个的,搞程序一半是因为钱多,一半是因为晋升公平。
2,初学者学java至少要脱产半年的时间才能算了解了,才适合被人带,因为至少半年的时间,才知道遇到问题如何解决,有的人需要更长的时间。现在有很多人已经有5年左右的经验了,在他们的压制下,java初学者很难有逆袭的机会了。
3,行业环境,现在数据存储,后台打包的方案的创业公司已经有苗头,也就是说,后台开发已经被集中解决,日后会越来越成熟,这就是意味着,java招聘需要有经验的人,也就是说,必须熬几年后才能有突破。
4,java离市场较远,所以呢?java开发人员很难有一个大的突破。
5,程序里面有变量所以解决了一系列类似的问题,所以注定了程序必须提供大批服务时才能有高收益。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流