это может быть легко, но я получаю исключение из-за пределов, и я не уверен, как его исправить.Ошибка Java за пределами исключения внутри вложенного цикла
В принципе, я пытаюсь создать «таблицу» целочисленных полей, чтобы я мог использовать их, чтобы найти, все ли значения в целочисленных полях создают магический квадрат. Вложенный цикл for должен создавать до квадрата 8x8, и он будет создавать первую строку квадрата, но вместо этого он дает мне ошибку за пределами границ.
Ошибка возникает внутри цикла вложенного цикла, где я добавляю IntegerField к графическому интерфейсу.
Если кто-то может помочь, это было бы здорово. Дайте мне знать, если вам нужно больше деталей.
import javax.swing.*;
import BreezySwing.*;
public class Interface extends GBFrame{
//Create integerField array to create input for magic square
public IntegerField[][] magicSquare;
//Create input button, integer field which sets size of square
public IntegerField squareSize;
public JButton inputSize;
//Create check square button
public JButton checkSquare;
//Label to output if there is a magic square
public JLabel squareLabel;
//Size of square variable
public int size;
//CalcSquare object
CalcSquare calc = new CalcSquare();
//Constructor for Square interface
public Interface()
{
squareSize = addIntegerField (0, 1, 1, 1, 1);
inputSize = addButton ("Input Size", 2, 1, 1, 1);
squareLabel = addLabel ("", 3, 1, 1, 1);
checkSquare = addButton ("Check Square", 4, 1, 1, 1);
}
//Creates IntegerFields on the GUI as needed.
public void createFields()
{
for (int i = 0; i <= size; i++)
{
for (int x = 0; x <= size; x++)
{
magicSquare = new IntegerField[i][x];
}
}
}
public void buttonClicked(JButton buttonObj)
{
if (buttonObj == inputSize)
{
size = squareSize.getNumber();
createFields();
for (int i = 0; i <= size; i++)
{
for (int x = 0; x <= size; x++)
{
magicSquare[i][x] = addIntegerField (0, i+1, x+1, 1, 1);
}
}
}
else if (buttonObj == checkSquare)
{
}
}
}
Что странно относительно 'OutOfBoundsException'? Массивы имеют 0-индексы. –
Почему вы делаете это 'magicSquare = new IntegerField [i] [x];' внутри цикла? – John3136