package com.ittaoli;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.IOException;
import java.util.ArrayList;
/**
*
* 版权所有:桃李软件
* 官方网址:http://www.ittaoli.com
*
*/
public class MyJump {
public static void main(String[] args) throws Exception {
JFrame jf = new JFrame("MyJump");
getImg();
jf.setLayout(new FlowLayout());
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 关闭后退出程序
jf.setSize(360, 640); //设定窗体的宽和高
jf.setVisible(true); // 设定窗口为可见
jf.setLocation(100, 100); // 设定窗体的坐标
jf.setResizable(false); // 禁用最大化按钮
JLabel lb = new JLabel("此处显示鼠标左键点击后的坐标"); // 创建一个 Label对象
jf.add(lb); // 添加标签到窗口上
JLayeredPane jlp = jf.getLayeredPane();
ImageIcon img = new ImageIcon("screen.png");
Image image = img.getImage();
Image smallImage = image.getScaledInstance(360, 640, Image.SCALE_FAST);
ImageIcon smallIcon = new ImageIcon(smallImage);
JLabel imgLabel = new JLabel(smallIcon);
jlp.add(imgLabel, Integer.MAX_VALUE);
imgLabel.setBounds(0, 0, 360, 640);
ArrayList list = new ArrayList<>();
jf.addMouseListener(new MouseListener() { //为窗口添加鼠标事件监听器
@Override
public void mousePressed(MouseEvent e) {
if (e.getButton() == e.BUTTON1) { // 判断获取的按钮是否为鼠标的右击
lb.setText(e.getX() + "," + e.getY()); // 获得鼠标点击位置的坐标并发送到标签的文字上
list.add(e.getX());
list.add(e.getY());
if (list.size() == 4) {
int time = getTime(list.get(0), list.get(1), list.get(2), list.get(3));
String cmd = "adb shell input swipe " + list.get(0) + " " + list.get(1) + " " + list.get(2) + " " + list.get(3) + " " + time;
list.clear();
System.out.println(cmd);
try {
Runtime.getRuntime().exec(cmd).waitFor();
Thread.sleep(1500);
getImg();
ImageIcon img1 = new ImageIcon("screen.png");
Image image = img1.getImage();
Image smallImage1 = image.getScaledInstance(360, 640, Image.SCALE_FAST);
ImageIcon smallIcon1 = new ImageIcon(smallImage1);
imgLabel.setIcon(smallIcon1);
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
});
}
private static void getImg() throws Exception {
String cmd1 = "adb shell screencap -p /sdcard/screen.png";
String cmd2 = "adb pull /sdcard/screen.png";
Runtime.getRuntime().exec(cmd1).waitFor();
Runtime.getRuntime().exec(cmd2).waitFor();
}
private static int getTime(int x1, int y1, int x2, int y2) {
return (int) (Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)) * 3 * 1.392);
}
}