Добавление нескольких графических элементов к разным кнопкам в файле .css (JavaFX)

#java #css

#java #css

Вопрос:

Это мой первый раз (и вопрос) здесь. Я создаю программу, которая работает довольно хорошо, за исключением того, что я хочу по-разному определять стиль разных кнопок. Я работаю JavaFX и определяю стиль разных вещей с .cs помощью s-файла. Я искал об этом, но не был уверен, как установить несколько изображений для одного и того же типа элемента (если вы так это называете; в моем случае это кнопка). У меня есть 4 buttons , которые я хочу определить отдельно в .css файле (с разными изображениями). У меня это пока для первой кнопки:

css (gameTestCSS.css):

 .button{
-fx-graphic: url("https://smashboards.com/proxy.php?image=http://i.imgur.com/5cgHjwu.pngamp;hash=113d5b8f78bcfb3660ec25d47ef1e5d7");
 

JavaFX (GameTest.java ):

 Button btn = new Button();
btn.getStylesheets().add(this.getClass().getResource("gameTestCSS.css").toExternalForm());
 

Однако это только для 1 кнопки. У меня есть другая кнопка:

 button btn1 = new Button();
 

и хотел бы оформить его иначе, чем первый (другой графический):

 .button{
-fx-graphic: url("https://smashboards.com/proxy.php?image=http://i.imgur.com/1WQpSsL.pngamp;hash=9c7b71d564e2b1d8ee6ee0aae27fb7d9");
 

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

Я не знаю, правильно ли я задал этот вопрос, или это должно быть здесь, но мне нужна небольшая помощь в решении этой проблемы, с которой я столкнулся. Это мой первый вопрос здесь, поэтому, пожалуйста, потерпите меня, если у меня есть какие-либо ошибки в форматировании или тому подобное. Заранее большое спасибо! 🙂

Комментарии:

1. .button насколько мне известно, для каждой кнопки. Вы можете сделать btn.setStyleClass("className") и в своем css иметь .className в качестве своего селектора.

2. @MichaelPickett Спасибо за ваш ответ! Не могли бы вы подробнее рассказать о .setStyleClass методе? Я попытался сделать это просто, но получил ошибку (вероятно, на моей стороне, ха-ха). Итак, если у меня есть следующие селекторы в .css файле: .button1 //code (установка графики) .button2 // code (установка графики) Как бы мне применить их к разным кнопкам? Большое спасибо: D, также приношу извинения за форматирование, не уверен, как правильно это сделать в комментариях!

3. Возможно, я забыл один шаг. Я не на своем компьютере, поэтому не могу его правильно протестировать. Попробуйте выполнить btn.getStyleClass().add("className") . Кажется, я забыл среднюю часть

4. @MichaelPickett сработал как шарм! Большое спасибо за помощь! Это выглядит довольно круто: D i.imgur.com/TIHbolg.png (остальное будет добавлено позже) Еще раз спасибо!!

5. В любое время. Выглядит великолепно.

Ответ №1:

Вы можете изменить внешний вид каждой кнопки по отдельности

 Button button = new Button("Pocho");
button.setStyle("-fx-background-color:#D3D3D3;");

Button button1 = new Button("Pocho1");
button1.setStyle("-fx-background-color:#000000;");
 

Комментарии:

1. Это противоречит цели использования CSS.