Привет, мне было интересно узнать, удалось ли получить длину элементов массива? Я проверил документы java, и единственная длина, которую я видел, была восстановлена, это длина самого массива. Мое назначение - использовать длины элементов для рандомизации цветов моих кирпичей. Если кто-то может указать в правильном направлении, чтобы получить длины получения длины элементов, которые будут высоко оценены. Вот мой код:Возвращаемая длина элемента массива
import javax.swing.JFrame;
import java.awt.Color;
import java.awt.Graphics;
import java.util.Random;
@SuppressWarnings("serial")
public class legos2v2 extends JFrame {
private int startX;
private int startY;
private int legoWidth;
private int legoHeight;
private int baseLength;
private int arcWidth;
private int arcHeight;
private Color[] colors;
// Constructor
public legos2v2() {
super("Jimmy's LEGOs");
startX = 20;
startY = 300;
legoWidth = 50;
legoHeight = 20;
baseLength = 10;
arcWidth = 2;
arcHeight = 2;
// Declare and Array of Colors
Color[] colors = {Color.red, Color.blue, Color.yellow, Color.green,
Color.pink, Color.black, Color.magenta, Color.orange,
Color.cyan};
// Get length of color
System.out.println("Array Length = " + colors.length + "\n");
}
// The drawings in the graphics context
public void paintComponent(Graphics g) {
// Call the paint method of the JFrame
super.paint(g);
int currentX = startX;
int currentY = startY;
Random random = new Random();
// row = 0 is the bottom row
for (int row = 1; row <= baseLength; row++) {
currentX = startX;
for (int col = 0; col <= baseLength - row; col++) {
g.fillRoundRect(currentX, currentY, legoWidth, legoHeight, arcWidth, arcHeight);
// Generate random integer from 0 to 8
int randomIndex = random.nextInt(colors.length);
g.setColor(this.colors[randomIndex]);
//Error here this.colors = colors[randomIndex];
// Print random integers to screen
System.out.println(randomIndex);
currentX = currentX + legoWidth;
}
currentY -= legoHeight;
startX += legoWidth/2;
}
}
// The main method
public static void main(String[] args) {
legos2v2 app = new legos2v2();
// Set the size and the visibility
app.setSize(550, 325);
app.setVisible(true);
// Exit on close is clicked
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Я вижу только один массив в приведенном выше коде, и это массив цветов. Какова длина цвета? Я не могу понять ваш вопрос. –
Я думаю, что вы хотите rand.nextInt (9), а не 8. Вызов, что с 8 даст вам диапазон 0-7. – fjc
Кроме того, почему вы инициализируете этот массив цветов, если вы ничего не делаете с ним? Вы, вероятно, пытаетесь сделать этот aray переменной экземпляра и замените свою длинную цепочку if на 'g.setColor (this.colors [randNumber]);' –