因此,在我们的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));
}