Аналогично Как удалить фон диалога?
Пример кода
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ToggleButton;
import javafx.scene.image.Image;
import javafx.scene.layout.Background;
import javafx.scene.layout.BackgroundImage;
import javafx.scene.layout.BackgroundSize;
import javafx.scene.layout.TilePane;
import javafx.stage.Stage;
public class BackgroundImageTest extends Application {
@Override
public void start(Stage stage) throws Exception {
var toggleButton = new ToggleButton();
var texture = new Image(BackgroundImageTest.class.getResourceAsStream("desert.jpg"));
var bckSize = new BackgroundSize(BackgroundSize.AUTO, BackgroundSize.AUTO, false, false, false, true);
toggleButton.setBackground(new Background(new BackgroundImage(texture, null , null, null, bckSize)));
toggleButton.setPrefHeight(40);
toggleButton.setPrefWidth(40);
// toggleButton.setStyle("-fx-background-size: cover;" + "-fx-background-image: url('desert.jpg');");
var pane = new TilePane(toggleButton);
var scene = new Scene(pane);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Этот код работает, но не при использовании MobileApplication.
Изображение не отображается, потому что CSS переопределяет его, я думаю. Если я использую css setStyle
, то это работает. Проблема в том, что я извлекаю изображения из кэша в al oop для массива кнопок, поэтому у меня нет имени файла, чтобы дать css, только загруженное изображение (и я думаю, что css не Не кешируйте изображения, чтобы они снова загружались).
Как это сделать?