こんにちは、JFrame で特定のピクセルの色を取得しようとしています。
これは私のコードです。私のフレームは赤です。
私が抱えている問題は、フレームをクリックすると、赤の RGB カラー (255,0,0) が返されるはずですが、別のポイントをクリックすると、白の RGB カラー (255,255,255) が返されることがあります。私のコードの人の問題?
public class guiTest extends JFrame
{
private static Shape ellipse;
private static Robot rb;
public guiTest()
{
super("4-connected approach");
setLayout(new FlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setSize(800,800);
this.getContentPane().setBackground(Color.red);
setLocationRelativeTo(null);
addMouseListener(new MouseListener(){
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("Pixel:"+e.getX()+","+e.getY());
try {
System.out.println(getPixel(e.getX(),e.getY()));
} catch (AWTException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
});
}
public static Color getPixel(int x,int y) throws AWTException{
Robot rb=new Robot();
return rb.getPixelColor(x, y);
}
public static void main(String[] args){
guiTest frame=new guiTest();
}