Siema piszę aplikacje która ma co chwile pobierać kolor pixela, gdy umieszczę instrukcję control=rob.getPixelColor(1166,88);
w pętli WHILE, wtedy aplikacja w ogóle nie pobiera koloru pixela. Proszę tutaj kod:
(błąd znajduje się na końcu kodu w ActionPerformed)
package bagmover_v20;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Robot;
public class Main {
public static void main(String[] args) {
JFrame okno=new JFrame("Aplikacjaxx");
Panel panel=new Panel();
okno.getContentPane().add(panel);
okno.setSize(225,120);
okno.setResizable(false);
okno.setDefaultCloseOperation(3);
okno.setLocationRelativeTo(null);
okno.setVisible(true);
}
}
class Panel extends JPanel implements ActionListener {
int value, posx, posy, key;
JTextField pole;
Color control;
Robot rob;
boolean action;
public Panel(){
control= null;
setBackground(Color.black);
JLabel l1=new JLabel("Aplikacjaxx");
l1.setForeground(Color.red);
JLabel l2=new JLabel("Value:");
l2.setForeground(Color.green);
pole=new JTextField(3);
JLabel l3=new JLabel(" ");
JButton up=new JButton("UP");
up.addActionListener(this);
JButton down=new JButton("DOWN");
JButton left=new JButton("LEFT");
JButton right=new JButton("RIGHT");
add(l1);
add(l2);
add(pole);
add(up);
add(l3);
add(left);
add(down);
add(right);
}
public void actionPerformed(ActionEvent e) {
action=true;
value=Integer.parseInt(pole.getText().trim());
posx=551;
posy=387;
key=KeyEvent.VK_UP;
go1();
while(action){
go2();
}
}
public void go1(){
try {
rob = new Robot();
rob.delay(1000);
rob.mouseMove(500,1);
rob.mousePress(InputEvent.BUTTON1_MASK);
rob.mouseRelease(InputEvent.BUTTON1_MASK);
} catch (AWTException ex) {}
}
public void go2(){
try {
rob = new Robot();
control=rob.getPixelColor(1166,88);
this.setBackground(control);
this.repaint();
} catch (AWTException ex) {}
if(control==Color.orange){
action=false;
}
}
}
Za pomoc wielkie dzięki :)