Класс javafx.scene.control.ToggleButton представляет кнопку, которая может находиться в двух состояниях: включенном и выключенном. Этот класс также наследуется от класса ButtonBase и поэтому имеет некоторую общую для всех кнопок функциональность.
ToggleButton имеет три конструктора:
ToggleButton()
: создает кнопку без надписи
ToggleButton(String text)
: создает кнопку с определенной надписью
ToggleButton(String text, Node graphic)
: создает кнопку с определенной надписью и фоновой графикой
ToggleButton определяет следующие свойства:
BooleanProperty selected
: определяет, выделена ли кнопка
ObjectProperty<ToggleGroup> toggleGroup
: определяет объект ToggleGroup, к которому принадлежит ToggleButton
Основные методы ToggleButton:
Boolean isSelected()
: возвращает значение true, если кнопка выбрана
void setToggleGroup(ToggleGroup group)
: устанавливает объект ToggleGroup, к которому будет принадлежать ToggleButton
Например, используем объект ToggleButton:
import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.layout.FlowPane; import javafx.scene.control.Label; import javafx.scene.control.ToggleButton; import javafx.geometry.Orientation; import javafx.geometry.Insets; public class Main extends Application{ public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage stage) throws Exception { ToggleButton lightBtn = new ToggleButton("Light"); Label stateLbl = new Label(); // обработка нажатия lightBtn.setOnAction(event -> { if(lightBtn.isSelected()){ stateLbl.setText("Light on!"); } else{ stateLbl.setText("Light off..."); } }); FlowPane root = new FlowPane(10, 10); root.getChildren().addAll(lightBtn, stateLbl); root.setPadding(new Insets(10)); Scene scene = new Scene(root, 250, 200); stage.setScene(scene); stage.setTitle("Hello JavaFX"); stage.show(); } }
В данном случае при нажатии на кнопку мы изменяем надпись на элементе Label: