Резюме: Вы должны добавить ярлык для каждой из ваших панелей, который отображает номер.
Пара очков:
- Если ваш класс расширяет
JFrame
, вам не нужно иметь его в качестве переменной-члена.
- Не ясно, что вы устанавливаете свой фрейм в любом месте (возможно, вы просто не включили этот код в ваш пример. Я поднимаю это, потому что пока нет описания того, что на самом деле не так) с вашим кодом - так что, возможно, это просто показ, поэтому
setVisible(true)
было бы важно.
- Если вы хотите добавить числа, вам нужно добавить
JLabel
к каждому во время итерации. Было бы хорошо, чтобы передний план этих JLabel
экземпляров чередовался с передним планом. Вы можете создать метку, используя ваши счетчики i
и j
для вычисления номера вашего квадрата.
Было бы хорошо инкапсулировать механизм нумерации в отдельном методе, так как вы отметили, что спецификация требует чередующихся строк для подсчета слева или справа. Примерно так:
JLabel label = new JLabel(getCellNumber(((i*10)+j),10) + "");
и тогда грубая версия метода getCellNumber()
может выглядеть примерно так:
private int getCellNumber(int id, int columnCnt) {
int rowID = (id) / columnCnt;
int colID = (id) % columnCnt;
if (rowID %2 == 1) {
colID = columnCnt - colID;
} else {
colID++;
}
return 101 - ((rowID * columnCnt) + colID);
}