JavaFX: как создать шахматный стол с обработчиком событий на каждом квадрате

1

Как рисовать шахматный стол в java?
Я думал, что использование TilePane будет в порядке.
Мне также удалось разместить квадраты внутри TilePane.

Но когда щелкнул один из квадратов, он должен изменить цвет. (т.е. от черного до красного или наоборот). В этом примере я использовал Circle вместо Rectangle:

circle.setOnMouseClicked(new EventHandler<MouseEvent>() {
    @Override
    public void handle(MouseEvent event) {
        System.out.println("Mouse Clicked!"));
    }
});

показывает сообщение, но я не могу изменить какие-либо свойства circle

Теги:
events
shapes

1 ответ

0

Предполагая, что вы объявили @FXML Circle circle; в вашем контроллере fxml и что ваш круг имеет соответствующий fx: id, вы можете использовать следующее, чтобы изменить цвет круга. Убедитесь, что у вас есть правильный импорт javafx.scene.paint.Color.

circle.setOnMouseClicked(new EventHandler<MouseEvent>() {

    @Override
    public void handle(MouseEvent event) {
        if (circle.getFill() == Color.RED)
            circle.setFill(Color.BLACK);
        else
            circle.setFill(Color.RED);
        System.out.println("Mouse Clicked!");
    }
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню