могу ли я нарисовать градиентный фон для FigureCanvas в Java

#java #gradient #draw2d

#java #градиент #draw2d

Вопрос:

Я хотел бы нарисовать градиентный фон для FigureCanvas. К сожалению, код, который работает для композитов или подобных им, не работает для моего FigureCanvas. Там, где это создает идеальный градиентный фон для моего композита, он просто помещает один цвет в качестве фона для моего FigureCanvas.

Вот фрагмент того, как это работает со всеми моими другими элементами управления.

 Rectangle rect = parent.getClientArea();
Image newImage = new Image(parent.getDisplay(), 1, Math.max(1,
rect.height));
GC gc = new GC(newImage);
gc.setForeground(composite.getDisplay().getSystemColor(SWT.COLOR_WHITE));
gc.setBackground(composite.getDisplay().getSystemColor(SWT.COLOR_BLUE));
gc.fillGradientRectangle(0, 0, 1, rect.height, true);
gc.dispose();
composite.setBackgroundImage(newImage);
  

Я что-то здесь упускаю? Или это просто невозможно без перезаписи или расширения чего-либо (если да, то чего?)? Я также попытался использовать то же фоновое изображение, что и у другого составного элемента, где оно работает нормально.

Спасибо за ответы!

Ответ №1:

оказывается, проблема была не в самом FigureCanvas, а в GEF, который переписал его где-то в другом месте.