Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java GUI
Войти
Регистрация
Восстановить пароль
 
Tima1996
0 / 0 / 1
Регистрация: 03.10.2014
Сообщений: 111
1

Условие если точка на панели белый, то вытащить координаты этой точки

03.12.2015, 15:52. Просмотров 296. Ответов 7
Метки нет (Все метки)

Здравствуйте, наткнулся на следующую проблему, не могу создать условие связанное с цветом объекта jPanel. У меня есть панель background который неоднородного цвета, и там нарисованы точки белым цветом на черном фоне, так вот мне необходимо при нажатии на белую точку узнать его координаты, а при нажатии на черную точку ничего не должно выводить. Для того чтобы узнать координаты нажатой точки на jPanel использую следующий код:
Java
1
2
3
private void jPanel1MouseClicked(java.awt.event.MouseEvent evt) {                                     
        label2.setText("x = " + evt.getX() + " y = " + evt.getY());
    }
Далее я попробовал сформулировать код следующим образом:
Java
1
2
if((jPanel1.getBackground(Color.white)
        label2.setText("x = " + evt.getX() + " y = " + evt.getY());
Но ничего не получилось, естественно выдает лексические ошибки, как правильно сформулировать условие?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2015, 15:52
Ответы с готовыми решениями:

Даны целочисленные координаты точки на плоскости. Если точка совпадает с началом координат, то вывести О. Если точка не совпадёт с началом координат,
Даны целочисленные координаты точки на плоскости. Если точка совпадает с...

Создайте стуктуру Point (точка) с вещественными полями x и y, которые задают координаты этой точки в двухмерном пространстве
Создайте стуктуру Point (точка) с вещественными полями x и y, которые задают...

Даны целочисленные координаты точки на плоскости.Если точка не лежит на координатных осях,то вывести 0...
1 задача! Даны целочисленные координаты точки на плоскости.Если точка не лежит...

Не подскажите функцию, чтобы я задал координаты точки на 3d плоскости, а она (ф-я) определила цвет этой точки?
Не подскажите функцию, чтобы я задал координаты точки на 3d плоскости, а она...

М- точка пересечения медиан треугольника ABC AB=BC A(-1;-2) , C(3;6). Точка М лежит на оси ординат найти координаты точки B
М- точка пересечения медиан треугольника ABC AB=BC A(-1;-2) , C(3;6). Точка М...

7
Pablito
2731 / 2166 / 735
Регистрация: 12.05.2014
Сообщений: 7,575
Завершенные тесты: 1
03.12.2015, 15:54 2
Цитата Сообщение от Tima1996 Посмотреть сообщение
jPanel1.getBackground(Color.white)
что по твоему должна сделать эта строка? мне интересно
ответ под спойлером
Кликните здесь для просмотра всего текста
нет такого метода вообще у класса JPanel, точнее метод есть, но параметры туда пихать не нужно
0
Tima1996
0 / 0 / 1
Регистрация: 03.10.2014
Сообщений: 111
03.12.2015, 16:26  [ТС] 3
Цитата Сообщение от Паблито Посмотреть сообщение
что по твоему должна сделать эта строка?
Я не прошу указать на мою лексическую безграмотность, я прошу хотя бы примерное решение моей проблемы, которой я указал выше
0
Pablito
2731 / 2166 / 735
Регистрация: 12.05.2014
Сообщений: 7,575
Завершенные тесты: 1
03.12.2015, 17:16 4
код не идеален, но пойдет и работает
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
 
public class TestPanel extends JFrame {
    TestPanel() throws AWTException {
        setSize(500, 300);
        setVisible(true);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        JPanel p = new JPanel();
        p.setBackground(Color.RED);
        //
        Robot robot = new Robot();
        p.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                super.mouseClicked(e);
                Color c = robot.getPixelColor(e.getX(), e.getY());
                System.out.printf("x=%d y=%d color argb = %d %d %d %d%n", e.getX(), e.getY(), c.getAlpha(), c.getRed(), c.getGreen(), c.getBlue());
 
            }
        });
        getContentPane().add(p);
    }
 
    public static void main(String[] args) throws AWTException {
        new TestPanel();
    }
}
0
Tima1996
0 / 0 / 1
Регистрация: 03.10.2014
Сообщений: 111
04.12.2015, 08:22  [ТС] 5
В какой среде вы писали этот код? И вы не могли бы выложить весь код программы начиная с package заканчивая последней фигурной скобкой?
0
Pablito
2731 / 2166 / 735
Регистрация: 12.05.2014
Сообщений: 7,575
Завершенные тесты: 1
04.12.2015, 15:35 6
я писал это в четверг, там весь код, который был скопирован через ctrl+a
там есть все импорты, а название пакета никакой роли не играет
0
Tima1996
0 / 0 / 1
Регистрация: 03.10.2014
Сообщений: 111
04.12.2015, 17:36  [ТС] 7
На 19-ой строке выводит следующую ошибку: "Local variable robot is accessed to inner class needs to be declared final". Наверное это связано с необнаруженной библиотекой java.swing.*
0
Pablito
2731 / 2166 / 735
Регистрация: 12.05.2014
Сообщений: 7,575
Завершенные тесты: 1
04.12.2015, 17:41 8
Java
1
final Robot robot = new Robot();
0
04.12.2015, 17:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2015, 17:41

Даны координаты точек х1, у1, ... х15, у15. Если точка попадает на плоскость, ограниченную кругом x2 + y2 = R2 - вывести ее координаты
Лабораторная работа 5. Одномерные массивы * * Для задач этого раздела...

Даны координаты центра круга и его радиус, а также координаты точки. Лежит ли эта точка внутри круга?
Даны координаты центра круга и его радиус, а также координаты точки. Лежит ли...

Если все заданные точки плоскости принадлежат первому квадранту, определить координаты точки, наиболее удаленной от начала координат
Если все заданные точки плоскости принадлежат первому квадранту, определить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru