Конструктор для ColorPane будет
Создайте прямоугольник и установите цвет заливки на что-то среднее: не слишком яркое или слишком темное, не слишком насыщенное или ненасыщенное.
Привязать ширину и высоту прямоугольника к ширине и высоте панели. Таким образом, прямоугольник покроет всю панель
Установите положение прямоугольника в (0,0)
Добавьте прямоугольник на панель (это не дочерний элемент только потому, что он является переменной экземпляра)
Для этого вам нужно использовать этот код:
Rectangle rectangle = new Rectangle(0, 0, pane.getPrefWidth(), pane.getPrefHeight());
pane.getChildren().add(rectangle);
Будет шесть способов изменить цвет прямоугольника. Каждый из них будет следовать примерно одинаковому подходу:
1: получить заполнение прямоугольника и привести его к цвету
2: получение оттенка, насыщенности и яркости цвета заливки (методы в цвете)
3: изменить компонент, который изменяется методом
4: воссоздать цвет (Color.hsb)
5: установить заливку прямоугольника
Чтобы получить цвет, сделайте следующее:
Color color = (Color) rectangle.getFill();
Чтобы получить оттенок, насыщенность и яркость цвета, сделайте следующее:
double hue = color.getHue();
double saturation = color.getSaturation();
double brightness = color.getBrightness();
Чтобы установить заливку прямоугольника, сделайте следующее:
rectangle.setFill(color);
Оттенок:
rectangle.setFill(Color.hsb(color.getHue() + 30, color.getSaturation(), color.getBrightness()));
Оттенок:
rectangle.setFill(Color.hsb(color.getHue() - 30, color.getSaturation(), color.getBrightness()));
более насыщенный:
rectangle.setFill(Color.hsb(color.getHue(), color.getSaturation()^2, color.getBrightness()));
Менее насыщенный:
rectangle.setFill(Color.hsb(color.getHue(), Math.sqrt(color.getSaturation()), color.getBrightness()));
зажигалка
rectangle.setFill(Color.hsb(color.getHue(), color.getSaturation(), color.getBrightness()^2));
Темнее:
rectangle.setFill(Color.hsb(color.getHue(), color.getSaturation(), Math.sqrt(color.getBrightness())));