Как установить скин JavaFX по умолчанию

Я заметил, что когда я запускаю приложение JavaFX на JVM 7 и JVM 8, я получаю разные скины по умолчанию. Как я могу установить скин по умолчанию одинаковым для каждой JVM?


person Peter Penzov    schedule 25.06.2013    source источник


Ответы (4)


Вы можете установить скин по умолчанию:

@Override 
public void start(Stage stage) throws Exception {
    ....
    setUserAgentStylesheet(STYLESHEET_CASPIAN);
    ....
}

http://fxexperience.com/2013/01/modena-new-theme-for-javafx-8/

person user1285928    schedule 29.06.2013
comment
Разве это не метод JavaFX 8? Будет ли это работать на JRE 7? - person OttPrime; 30.06.2013
comment
@OttPrime Нет, он не будет работать на 7, используйте System.setProperty( "javafx.userAgentStylesheetUrl", "CASPIAN" ); - person Jurgen; 16.04.2014
comment
Вышеприведенное будет работать при запуске приложения в виде jar-файла, но по какой-то причине не будет работать при запуске его с помощью Java Web Start, есть идеи, почему? Я боролся с этим некоторое время, я не могу найти причину этого. - person skjerdalas; 02.06.2014

Таблица стилей по умолчанию для JavaFX 2 — caspian.css. Вы можете найти его в jfxrt.jar в разделе com.sun.javafx.scene.control.skin.caspian. Это изменилось с JavaFX 8, и я считаю, что таблица стилей по умолчанию называется modena.css. Чтобы получить общую таблицу стилей, вам придется либо определить свою собственную, либо скопировать одну из стандартных таблиц стилей в свой проект.

person OttPrime    schedule 26.06.2013

Вы также можете запустить с -Djavafx.userAgentStylesheetUrl=caspian в командной строке.

person Brian Blonski    schedule 20.08.2014

Вы можете установить свой собственный скин, добавив таблицу стилей.

scene.getStylesheets().add(
    getClass().getResource("my-skin.css").toExternalForm());

К сожалению, таблицы стилей по умолчанию нет. Возможно, просмотр jfxrt.jar может что-то дать.

person Joop Eggen    schedule 25.06.2013
comment
Существуют ли какие-либо другие скины, встроенные в JavaFX, которые я могу использовать? - person Peter Penzov; 25.06.2013
comment
Не то, чтобы я знал, но я совсем не разбираюсь в JavaFX. - person Joop Eggen; 25.06.2013
comment
@OttPrime Превратите это в ответ; У меня уже достаточно баллов. - person Joop Eggen; 26.06.2013