如何在Java中使用Paint绘制颜色数组?

时间:2016-02-18 18:49:37

标签: java swing colors paint

以下是代码。我在这一行中遇到错误

Paint[] p=new Paint[]{cols};

但如果我使用

Paint[] p=new Paint[]{cols[1]}; 

它不会出错。

    Color[] cols = new Color[n];

    for (int i = 0; i < n; i++)
    {
        cols[i] = Color.getHSBColor((float) i / n, 1, 1);

    }
    Paint[] p=new Paint[]{cols};
    return cols;

1 个答案:

答案 0 :(得分:2)

pPaint的数组。 cols是另一个数组。 p无法包含cols,因为p中的对象必须是Paint,而不是数组。

如果您想将cols的内容放入p,您可以这样做:

Paint[] p = new Paint[cols.length]; // create a new array with the same length as `cols`
System.arraycopy(cols, 0, p, 0, cols.length); // copy the contents

相当于迭代数组的长度并复制每个元素。

但是如果你真的想要一个cols数组,我不知道你为什么要拥有Paint数组。你可以这样做:

Paint[] p = new Paint[n];

for (int i = 0; i < n; i++) {
    p[i] = Color.getHSBColor((float) i / n, 1, 1);
}