Я согласен, что важно измерить это и увидеть.По моему опыту, рисование градиента, вероятно, будет медленнее, чем рисование изображения.Однако, если вы говорите только о маленькой кнопке, это может не иметь большого значения для беспокойства.Есть несколько приемов для ускорения градиентов.Например, вы можете нарисовать его в BufferedImage и всякий раз, когда вам нужно нарисовать ваш градиент, используйте g.drawImage (Image img, int x, int y, ImageObserver наблюдатель) вместо создания нового градиента.Более того, если ваш градиент направлен вверх и вниз, вы можете сохранить градиент в BufferedImage шириной 1 пиксель.Затем вы можете нарисовать градиент по всей ширине фона, используя g.drawImage (Image img, int x, int y, int width, int height, наблюдатель ImageObserver) .
Однако беспокоиться о том, что быстрее, обычно бессмысленно, если одна занимает 1 миллисекунду, а другая - 0,1 миллисекунды (если, конечно, вы не пытаетесь вызывать ее 1000 раз в секунду).Для получения дополнительной информации я бы порекомендовал книгу «Грязные богатые клиенты», особенно главы 4, 5 и 7.