我不确定将所有内容放在 int 的 3 维数组中是否是个好主意。
您的第一个错误是 dataytpe:RGB 是 int。但是 R 是一个字节,G 是一个字节,B 也是一个字节..(Color.getXXX()
传递一个 int,我不知道为什么,因为它是一个字节 0-255)
您需要一个 int,因为您要处理超过 256 个列和行。(没关系)。但我认为将颜色信息封装在一个额外的对象中要好得多。也许是一个私有数据结构,例如
class MyColor {
public byte r, g, b; //public for efficient access;
public int color; //public for efficient access;
public MyColor(final int rgb) {
this(new Color(rgb));
}
public MyColor(final Color c) {
this((byte) c.getRed(), (byte) c.getGreen(), (byte) c.getBlue(), c.getRGB());
}
public MyColor(final byte red, final byte green, final byte blue, final int c) {
this.r = red;
this.g = green;
this.b = blue;
this.color = c;
}
}
并将其放入 2dim 数组中MyColor[numRows][numColumns]
但是,如果您将 MyColor 课程公开给您的整个应用程序 - 我会更改课程的设计以更安全。