Изменение фонового изображения кнопки JavaFX с помощью CSS - PullRequest
0 голосов
/ 09 апреля 2020

Я программирую игру на JavaFX, используя массив кнопок, инициализированных так:

for(int i=0; i<gameSize; i++){
         for(int j=0; j<gameSize; j++){
                btns[i][j] = new Button();
         }
}

Иногда мне нужно изменить фон некоторых кнопок. У меня есть подпапка в папке с пакетом. В нем есть пара изображений. Я могу изменить цвет фона из кода с помощью метода .setStyle (..) - это работает. Однако, когда я попытался установить изображение в качестве фона, ничего не произошло.

Это работает

btns[i][j].setStyle("-fx-background-color: blue;");

Это не похоже на работу

btns[i][j].setStyle("-fx-background-image: url('../subfolder/imagename.png');");

эта строка кода не изменила мою кнопку фон. ПОЧЕМУ?

Однако, когда я добавил это к своему css коду:

.buttonImageClass{
     -fx-background-image: url('../subfolder/imagename.png');
}

и использовал его в своем коде javafx:

btns[i][j].getStyleClass().add("buttonImageClass");

Это изменило фон, но если я попытаюсь изменить его снова и снова, я добавлю много классов css для каждой кнопки, не имея возможности легко их удалить. Во-вторых, я не хочу создавать отдельный класс для каждого изображения.

Не могли бы вы дать мне совет, как изменить изображение кнопки из кода, не создавая новые классы css? Мне нужно менять его довольно часто, и я не хочу создавать отдельный класс css для каждого из них. Заранее благодарен за любую помощь.

(Я также пытался использовать то, что нашел здесь, Фоновое изображение кнопки JavaFX , но это не решило мою проблему.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...