Как Добавить Обработчик Нажатия Мыши?

Тема в разделе "Java", создана пользователем andruxai, 3 янв 2014.

  1. andruxai

    andruxai Member

    Регистрация:
    10 дек 2013
    Сообщения:
    8
    Симпатии:
    0
    Всем привет. Есть программа которая берёт автоматически точку в заданой области и кликает по ней, и как только движущая точка станет на эти координаты то мы получаем новую точку и так бесконечно.Нужно чтоб когда рандомом было задано координаты движения, можна было б их изменить с помощю нажатия кнопки мыши на новую точку. Подскажте начинающему как добавить MouseListener чтоб переменным xr и yr передавались значения координат нажатия мыши.
    Код программы:
    Код (Text):
    import java.awt.AWTException;
    import java.awt.Color;
    import java.awt.Container;
    import java.awt.Point;
    import java.awt.Robot;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.InputEvent;
    import java.awt.event.MouseListener;
    import java.awt.event.MouseMotionListener;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import java.awt.event.MouseEvent;

    class Zoro{

    Robot r;
    Point pkon;
    public int getx(){return xr;}
    public int gety(){return yr;}
    public int setx(int w){xr=w;return xr;}
    public int sety(int w){yr=w;return yr;}
    int k1=0;
    int k=0;
    int xr=0;int yr=0;
    int amin=828;int amax=995;int bmin=599;int bmax=690;
    public void zoro(){
    try {
    r = new Robot();
    } catch (AWTException ex) {
    }

    xr=((int)(Math.random()*(amax-amin+1)+amin));
    yr=((int)(Math.random()*(bmax-bmin+1)+bmin));
    r.mouseMove(xr, yr);
    r.mousePress(InputEvent.BUTTON1_MASK);
    r.mouseRelease(InputEvent.BUTTON1_MASK);
    pkon=new Point(xr,yr);
    System.out.println(pkon);
    k++;
    System.out.println(k);
    }
    }
    class myFrame extends JFrame {

    int x=0;int y=0;
    Point poin;
    Point p;

    Zoro m= new Zoro();
    public myFrame() {
    setTitle("Test");
    JPanel panel = new JPanel();
    final JButton bt1 = new JButton("Start");
    panel.add(bt1);
    bt1.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {

    System.out.println("Start");
    new Thread(new Runnable() {
    @Override
    public void run() {
    m.zoro();
    for(;;){ Color col = new Color(90, 90, 90);
    for (int i =824; i <= 997; i++) {
    Color c1 = m.r.getPixelColor(i, 595);
    if (c1.equals(col)) {x=i;}}
    for (int j =594; j < 700; j++) {
    Color c1 = m.r.getPixelColor(823, j);
    if (c1.equals(col)) {y=j;
    p=new Point(x,y);
    if((x==m.getx())&(y==m.gety())/*p.equals(m.pkon)*/) m.zoro();
    }}

    }
    }}).start();
    }
    });
    Container pane = getContentPane();
    pane.add(panel);

    pack();
    }
    }

    public class MiniMap {
    public static void main(String[] args) {
    myFrame frame = new myFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.show();
    }
    }
     
Загрузка...

Поделиться этой страницей