Javafx 8: Создание кнопок с двумя цветовыми свойствами и изменением цвета при нажатии в зависимости от условия - PullRequest
0 голосов
/ 25 марта 2019

Моя проблема в том, что мне нужны кнопки на сцене 5x5, поэтому 25 кнопок. Каждый из них должен быть синим, как будто они выключены.

При нажатии на них они должны быть "включены", поэтому должны быть желтыми. Но при нажатии на них также должны срабатывать их правые и левые, а также соседи вверх и вниз.

Так что я застрял при изменении цвета в зависимости от того, в каком состоянии они находятся (включено или выключено). Как я могу это сделать? Я знаю, что могу придать кнопкам цвет. И по щелчку установить на действие пусть они меняют цвет. Но как я могу проверить, как: "нажмите": если (кнопка == синяя): сделать кнопку желтой, сделать bluecounter-1 (мне нужно посчитать, сколько включено или выключено), yellowcounter + 1, и сделайте это с помощью кнопки вправо (i + 1, j), слева (i-1, j) и т. д. с другими.

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

package Lampen;

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;

import javafx.scene.control.*;

public class lampen extends Application {
    public static void main(String[] args) {
        Application.launch(args); //ruft Start auf
    }

    public void start(Stage primaryStage) throws Exception{

        Group g= new Group();
        Scene s= new Scene(g,400, 400);
        Button b1= new Button("1");
        b1.setStyle("-fx-background-color: blue");
        g.getChildren().add(b1);

       //get Button to change color

        b1.setOnAction(e->{
            if(b1)
            b1.setStyle("-fx-background-color: yellow");

        });


    primaryStage.setScene(s);
    primaryStage.show();

    }
}
...