#java #css #javafx #background
#ява #css #javafx #фон #java
Вопрос:
Я динамически создаю несколько VBoxes в своей игре, чтобы показать уменьшенную версию карты. Для этого я устанавливаю в VBoxes фон (фон объекта).
При попытке стилизовать их в CSS это действительно работает должным образом, но при попытке закруглить углы с помощью «-fx-background-radius: 10;» на самом деле фон больше не отображается.
Я думаю, что это как-то связано с тем, как я создаю фон:
public Background getBackground(Boolean isOwnCard, Card card) {
String fileName = card.getCardType().toString();
BackgroundSize bgs;
if (isOwnCard) {
bgs = new BackgroundSize(110, 50, false, false, false, false);
} else {
bgs = new BackgroundSize(75, 50, false, false, false, false);
}
BackgroundImage bgi = new BackgroundImage(new Image("file:client.Resources/Images/CardImageSmall/" fileName ".jpg"), BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, BackgroundPosition.CENTER, bgs);
Background bg = new Background(bgi);
return bg;
}
С -fx-background-radius: 10;
в CSS:
Без -fx-background-radius
в CSS:
Есть ли какая-либо возможность закруглить углы фона? У кого-нибудь была такая же проблема?
Редактировать
Я пробовал это с настройкой фона в CSS, но, к сожалению, фон по-прежнему не хочет получать закругленные углы:
#CardImageSmallBrown{
-fx-background-image: url('../../client.Resources/Images/CardImageSmall/BRAUN.jpg"');
-fx-effect: dropshadow(three-pass-box, rgba(0,0,0,0.8), 10, 0, 0, 0);
-fx-background-radius: 50px;
-fx-border-radius: 50px;
-fx-border-width: 5px;
-fx-border-color: black;
-fx-background-position: center;
}
Результат:
Как мне закруглить края фона!?
Комментарии:
1. Настройка свойств из CSS (т. Е. «таблицы стилей автора» или «встроенного») имеет приоритет над настройкой свойств программно (т. Е.
setProperty(...)
). Я предполагаю, что установка фонового радиуса в CSS приводит к потере другой фоновой информации, установленной в коде. Попробуйте установить фон либо полностью с помощью CSS, либо полностью с помощью кода.2. Спасибо, Slaw! Я пробовал это сейчас с CSS, но все еще не получаю результата. Вы можете увидеть в РЕДАКТИРОВАНИИ, что я изменил. Вы знаете, как закруглить край с помощью css?
3. Я ошибся. Я думаю, что проблема в том, что у
BackgroundImage
не может быть угловых радиусов. Возможно, вы сможете обойти это, установивshape
на своемRegion
.4. В качестве альтернативы задайте
clip
свойство…