У меня в настоящее время есть большая проблема с загрузкой CSS и изображений в JavaFX.JavaFX загрузка изображений из CSS в Webstart
Цель состоит в том, чтобы загрузить JavaFX изображения, определенные в файле CSS. Я получаю, что это легко работает в среде IDE и в автономном исполнении. Но как только я попробую приложение как апплет и запустил его в контексте браузера, все не удается.
Файл CSS по-прежнему загружается должным образом, но файлы изображений остаются пустыми. К сожалению, я не могу найти способ сделать журнал JavaFX причиной сбоя загрузки изображения. Все изображения расположены в подкаталогах от расположения файла CSS и доступны, например, как это:
.button-gray {
-fx-border-image-source: url("button/buttongray.png");
}
Файл CSS находится в том же пакете, что и класс, который обрабатывает его загрузки и является нагрузкой, как это :
final URL css = Util.class.getResource("sheet.css");
if (css != null) {
parent.getStylesheets().add(css.toExternalForm());
}
Я попытался уже размещения ресурсов в корневом каталоге и загрузите его с Util.class.getClassLoader.getResource(...)
и Thread.currentThread().getContextClassLoader.getResource(...)
. Оба работали нормально, если приложение было выполнено как самостоятельное. Ни один из них не работал, если приложение запускается из контекста аплета webstart.
Но, как я уже говорил. Во всех случаях нет никаких указаний на то, что CSS не является загрузкой. Стили, определенные в таблице стилей, применяются правильно, за исключением изображений.
У меня заканчивается идея, в чем причина этого. Я упаковываю и публикую приложение, используя плагин javafx gradle от shemnon.
Строительство среды:
- Oracle Java 1.7b45 x64
- Gradle 1,9
Каждый знает, как исправить эту проблему или имеет какие-либо идеи, как отлаживать его. К сожалению, средства ведения журнала JavaFX (даже CSS Logger) и консоль трассировки апплетов не дают никаких указаний на то, что проблема.
Новая информация!
Файл JNLP находится здесь: JNLP-File
Как всегда, этот файл не является проблемой. Кажется, что проблема состоит в генерации двоичного файла css, который является частью процесса развертывания JavaFX для webstart. В этом двоичном файле по какой-то еще неизвестной причине есть ссылка на файл CSS внутри, создавая среду. Это заставляет загрузчик CSS загружать файлы изображений из местоположения на моем сервере зданий. Что-то, что не работает на моем локальном компьютере. С другой стороны, сборки, которые я делал на моем локальном компьютере, работают, потому что файлы все еще находятся в том месте, где он ищет.
Так что теперь проблема ограничивается созданием двоичного кода css, в котором хранится полностью неправильная ссылка на файл.
Возможно, я заявляю очевидное, но на всякий случай: вы * подтвердили, что JAR, загруженный WebStart *, содержит * изображения? –
Обычно это очевидные вещи, которые вызывают такие проблемы. Но не в этом случае. Да, я проверил, находятся ли файлы в JAR, и они есть. Я даже проверил файл, находящийся внутри кеша WebStart. – Nitram
Кажется, у кого-то нет идеи. Кто-нибудь знает о рабочих примерах приложений веб-старта JavaFX, которые загружают изображения из файла CSS? – Nitram