Java 3 Color Gradient

у меня естьJPanelи я хотел бы нарисовать градиент внутри него. У меня есть код ниже, но он рисует только 2 цветовых градиента. Я хотел бы добавить третий, но нене знаю как. Я хочу, чтобы верхний левый угол панели был белым, верхний правый - красным, а оба нижних угла - черным. Что мне нужно сделать, чтобы добиться этого, что-то похожее на это:

package pocketshop.util;

import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JPanel;

public class ColorPicker extends JPanel{

    public ColorPicker(){
        repaint();
    }

    @Override
    public void paintComponent(Graphics g){
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D)g;
        int w = getWidth();
        int h = getHeight();

        GradientPaint gp = new GradientPaint(
                0, 0, Color.white,
                0, h, Color.black);

        g2d.setPaint(gp);
        g2d.fillRect(0, 0, w, h);
    }
}





Изменить: возможное решение

Я смог придумать 2 градиента, один горизонтальный и один вертикальный, например:

    public void paintComponent(Graphics g){
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D)g;
        int w = getWidth();
        int h = getHeight();

        // Vertical
        GradientPaint gp = new GradientPaint(
                0, 0, new Color(0,0,0,0),
                0, h, Color.black);

        // Horizontal
        GradientPaint gp2 = new GradientPaint(
                0, 0, Color.white,
                w, 0, Color.red, true);

        g2d.setPaint(gp2);
        g2d.fillRect(0, 0, w, h);
        g2d.setPaint(gp);
        g2d.fillRect(0, 0, w, h);
    }

Ответы на вопрос(2)

Ваш ответ на вопрос