Java:在JPanel上放置一个三色渐变

时间:2015-12-01 10:15:55

标签: java swing colors

因此,在我们的Java类分配中,我们应该在JPanel Canvas上显示三色渐变。为了得到颜色,我们应该自己计算R,G,B变量,结果有三种颜色传递给渐变条。

实施例

颜色1 = 0,0,0

颜色2 = 255,0,0

颜色3 = 255,255,255

所以渐变应该是从纯黑色到红色再到白色。颜色根据强度计算。 (强度0 =黑色。强度128 = 255红色,50绿色,0蓝色。强度255 =白色)

public class ColorGradient {
    public void gradient() {
        float intensity = 255;
        float r1 = 0;
        float g1 = 0;
        float b1 = 0;

        if (intensity <= 128) {
            r1 = ((float)255/(float)128)*intensity;
            g1 = ((float)50/(float)128)*intensity;
            b1 = ((float)0/(float)128)*intensity; 

            System.out.println(r1);
            System.out.println(g1);
            System.out.println(b1);
        } else {
            r1 = 255; 
            g1 = 50 + (((float)205/(float)128)*(intensity-128));
            b1 = (((float)255/(float)128)*(intensity-128));

            System.out.println((int)r1);
            System.out.println((int)g1);
            System.out.println((int)b1);
        }
    }
}

我们创建了一个类来计算数字(但不尽可能精确),但我们不确定如何将每个颜色作为一个渐变传递给Panel。 GradientPaint只有两种颜色,所以我们没有三个颜色条。

我认为我们创造了三个&#34; new&#34;我们输出上面的颜色?它只是,我们目前仍然坚持如何把酒吧放在Jpanel画布上。

//possible example
Color c1 = new Color(0,0,0) //black part of the Gradient
Color c2 = new Color(255,50,0) // red part of the Gradient
Color c3 = new Color(255,255,255) // white part of the Gradient

Gradient example from our class

我们有一个将渐变放在画布上的功能,如果我们从awt使用GradientPaint,我们可以制作一个2色渐变(但我认为这不是正确的方法)

public void draw(Graphics g) {
    Graphics2D g2 = (Graphics2D) g;
    Graphics2D g3 = (Graphics2D) g;
    GradientPaint blackToRed = new GradientPaint(0,0, Color.black, 100,20,Color.red);
    g2.setPaint(blackToRed);
    g2.fill(new Rectangle2D.Double(0,0,200,20));
}

0 个答案:

没有答案