Я создал программу с графическим интерфейсом линкора с сеткой кнопок, затем я создал группу переключателей, чтобы выбрать, какой корабль пользователь хочет разместить в сетке, как только пользователь выбирает переключатель, они могут изменить цвет кнопок на сетка. то есть позиционировать корабль
моя проблема заключается в том, что когда пользователь выбирает переключатель, он может изменить цвет кнопки сетки так, как ему нравится.
Я также хочу, чтобы они могли изменять цвет кнопок только близко к тому, который они изначально выбрали (только по вертикали и горизонтали)
Вот мой код
public void actionPerformed(ActionEvent evt){
if(submarine.isSelected())
{
button[r][c].setBackground(Colour.green)
board[r][c]=+1
}
Массив кнопок хранит положение текущей используемой кнопки, в то время как доска должна хранить положение корабля.
редактировать: когда я запускаю программу, у меня есть сетка, представляющая доску. затем я сделал радиокнопки группы 4, представляющие корабли (подводная лодка, крейсер, эсминец и линкор), и еще одну группу для ориентации (вертикальной или горизонтальной).
если игрок выбирает радиокнопку, например, подводную лодку (имеющую длину 4), а вертикальную кнопку нажимает, а цвет следующих 3-х в случае меняется на красный. Теперь я хочу, чтобы игрок мог один раз разместить корабль на сетке. в моем примере, после того, как пользователь поместит подводную лодку (4 красные кнопки по вертикали), он сможет только изменить положение, т.е. создать новые наборы из 4 красных кнопок на сетке (если они хотят изменить положение кораблей), что означает ранее выбранные кнопки очищаются.
Я также не хочу, чтобы кнопки перекрывали сетку. например, если они выбирают подводную лодку и вертикаль после размещения 4 красных кнопок, указывающих на подводную лодку. если они затем выберут новый корабль, например линкор, длиной 6 . новые кнопки не должны перекрывать предыдущую подводную лодку
Надеюсь, это проясняет ситуацию. если вы все еще не поняли, дайте мне знать