Изменение цвета радиокнопок - PullRequest
0 голосов
/ 23 октября 2018
    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setTitle(" ");

        RadioButton rbRed = new RadioButton("Red");
        RadioButton rbGreen = new RadioButton("Green");

        ToggleGroup group = new ToggleGroup();

        rbRed.setToggleGroup(group);
        rbGreen.setToggleGroup(group);

        HBox hbox = new HBox(rbRed, rbGreen);
        hbox.setAlignment(Pos.CENTER);

        rbRed.setOnAction(e -> {
            if (rbRed.isSelected()) {
                hbox.setBackground(Color.RED);
            }
        });

        rbGreen.setOnAction(e -> {
            if (rbGreen.isSelected()) {
                hbox.setBackground(Color.GREEN);
            }
        });

        Scene scene = new Scene(hbox, 400, 100);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        Application.launch(args);
    }

}

это мой код.при нажатии на кнопку радио, он должен изменить цвет фона.

1 Ответ

0 голосов
/ 23 октября 2018

Вам нужен фон, а не просто такой цвет как

public class Main extends Application {

    @Override
    public void start(Stage stage) {
        stage.setTitle(" ");

        RadioButton rbRed = new RadioButton("Red");
        RadioButton rbGreen = new RadioButton("Green");

        ToggleGroup group = new ToggleGroup();

        rbRed.setToggleGroup(group);
        rbGreen.setToggleGroup(group);

        HBox hbox = new HBox(rbRed, rbGreen);
        hbox.setAlignment(Pos.CENTER);

        rbRed.setOnAction(e -> {
            if (rbRed.isSelected()) {
                hbox.setBackground(buildBackground(Color.RED));
            }
        });

        rbGreen.setOnAction(e -> {
            if (rbGreen.isSelected()) {
                hbox.setBackground(buildBackground(Color.GREEN));
            }
        });

        Scene scene = new Scene(hbox, 400, 100);
        stage.setScene(scene);
        stage.show();

    }

    private Background buildBackground(Color color){
        return new Background(new BackgroundFill(color,new CornerRadii(0),new Insets(0)));
    }


    public static void main(String[] args) { launch(args); }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...