Как проверить цвет пикселя в JPanel в Java? - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь написать код в Java, который меняет цвет круга в зависимости от местоположения щелчка, а также некоторые операторы if / else для изменения цвета круга, а также посмотреть, если любой из кружков в верхней части экрана окрашен другим цветом, отличным от белого. У меня есть утверждения, которые идентифицируют пиксель, который нужно проверить, а также какой цвет изменить круг, к которому относится пиксель, мне просто нужно немного кода, чтобы проверить, какой цвет у пикселя. Я использую JPanel в качестве основы для создания GUI, но я не знаю, как бы я проверял цвет пикселя.

Как я думаю, код будет выглядеть так:

X=e.getX();
Y=e.getY();
if((X,Y)!=(Color.White)){
     Y=Y+100;
     }
else{
     g2.fillOval(X,Y,30,30);
}

код, который я написал, уже определяет, какой цвет закрасить круг, к которому относится пиксель

1 Ответ

1 голос
/ 01 мая 2020

Вам потребуется добавить MouseListener для вашего JPanel, чтобы получить местоположение указателя мыши X & Y, а затем с помощью класса Robot вы можете получить цвет пикселя в этом конкретном месте, например:

jPanel1.addMouseListener(new MouseAdapter() {
    @Override
    public void mouseClicked(MouseEvent evt) {
        int x = evt.getX()
        int y = evt.getY();
        try {
            // The the pixel color at location x, y
            Color color = new Robot().getPixelColor(x, y);

            // Display the RGB information of the pixel color in Console Window
            System.out.println("Red   = " + color.getRed());
            System.out.println("Green = " + color.getGreen());
            System.out.println("Blue  = " + color.getBlue());
        }
        catch (AWTException e) {
            e.printStackTrace();
        }
    }
});

Существуют и другие способы выполнения sh этого, но это самый простой.

...