Проблема с нажатием кнопки JavaFX

Мне нужно, чтобы, когда я нажимаю кнопку, цвет кнопки меняется, я создаю интерфейс в построителе сцены и стилизую его с помощью fx css. Я пытался:

.botones:hover { 
    -fx-background-color: red;
}

.botones:pressed {
    -fx-background-color: blue;
}

.botones { 
    -fx-background-color:  #262626;
}

Наведение работает нормально, но когда я нажимаю кнопку, он становится синим на секунду, а затем меняет свой исходный цвет, и я хочу, чтобы он оставался синим.

Возможно, я мог бы использовать вместо этого кнопку переключения, но я использую кнопки jfoenix, потому что у них есть классные эффекты.


person JAram    schedule 12.04.2018    source источник
comment
это помогает? stackoverflow.com/questions/39820837/   -  person Mauricio Gracia Gutierrez    schedule 12.04.2018


Ответы (1)


Вы правы, что ToggleButton в JFoenix - это скорее переключатель:

Однако вы можете использовать менее известный элемент управления в JFoenix под названием _ 2_.

JFXToggleNode Animation

Просто поместите в него этикетку. (Не забудьте включить выражения import.)

<?import com.jfoenix.controls.JFXToggleNode?>
<?import javafx.scene.control.Label?>

...

<JFXToggleNode>
    <Label text="Boton Azul" />
</JFXToggleNode>

и добавьте это правило в свою таблицу стилей:

.jfx-toggle-node {
    /* This is the color once toggled on. */
    -jfx-toggle-color: deepskyblue;
}

Обратите внимание, что SceneBuilder пока не очень хорошо поддерживает нестандартные элементы управления, поэтому, хотя вы не можете перетащить его, вы можете добавить его вручную в файл FXML. отлично.

person Brad Turek    schedule 12.04.2018
comment
Хорошо, я попытался добавить кнопку через файл fxml, но случилось так, что кнопка всегда синяя, я нажимаю на нее, и она все еще синяя, но все равно спасибо! - person JAram; 12.04.2018
comment
Я тебя прикрыл, @JAram. См. Внесенные мной правки. -jfx-toggle-color - это то, что вы ищете. - person Brad Turek; 12.04.2018
comment
@JAram, я добавил изображение конечного продукта. - person Brad Turek; 12.04.2018
comment
Извините, я не смог ответить вчера, однако я попробовал это сейчас, я добавил узел переключения через файл FXML, а затем добавил стиль в файл css, но по какой-то причине он не работает. - person JAram; 13.04.2018
comment
Если вы хотите обновить свой вопрос тем, что у вас есть сейчас, я могу помочь. - person Brad Turek; 13.04.2018
comment
Эй, я только что решил это !, то, что я сделал, было: fx-toggle-node {-fx-background-color: # 262626; -fx-selected-color: blue} И работает отлично! - person JAram; 13.04.2018
comment
Вы можете заключить свой код в комментарии, если хотите его отформатировать. Клавиша обратной кавычки находится справа под Esc - person Brad Turek; 13.04.2018
comment
Теперь мне нужно сделать так, чтобы переключаемый узел не выбирался, когда я выбираю другой узел. Но это уже другая история ^^ - person JAram; 13.04.2018