Для меня лучшим (но, возможно, не самым простым) способом было бы реализовать пользовательский класс Paint
, который позволяет устанавливать цветовые области - немного похоже на классы GradientPaint
, но более гибкий.
Тогда вывызовет Graphics2D.setPaint(myPaint)
непосредственно перед рисованием линии.
Реализация Paint
может предложить метод setColorForRegion(double start, double end, Color color)
с start
и end
, принимающий значения в диапазоне от 0,0 до 1,0, чтобы отметить область наline.
Может быть немного сложно реализовать класс Paint
, но выгода в том, что вы можете изменить размер линий и нарисовать их в любом направлении, сохранив цветовой узор.