Задать цвет кнопки - Java

Узнай цену своей работы

Формулировка задачи:

В цикле создаётся n-ое количество кнопок. Необходимо чтобы при нажатии на копку, она окрашивалась в зелёный цвет. Так не получилось:
Листинг программы
  1. package javaapplication32;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import javafx.application.Application;
  5. import javafx.geometry.Insets;
  6. import javafx.scene.Scene;
  7. import javafx.scene.control.Button;
  8. import javafx.scene.layout.VBox;
  9. import javafx.stage.Stage;
  10. public class JavaApplication32 extends Application {
  11. private final VBox vbox = new VBox(30);
  12. private final List<Button> list = new ArrayList<>();
  13. /**
  14. * @param args the command line arguments
  15. */
  16. public static void main(String[] args) {
  17. launch(args);
  18. }
  19. @Override
  20. public void start(Stage primaryStage) throws Exception {
  21. vbox.setPadding(new Insets(30));
  22. createButton();
  23. addEvents();
  24. Scene scene = new Scene(vbox, 600, 600);
  25. primaryStage.setScene(scene);
  26. primaryStage.show();
  27. }
  28. private void createButton() {
  29. for (int i=0; i<10; i++) {
  30. Button btn = new Button("Кнопка " + i);
  31. list.add(btn);
  32. vbox.getChildren().addAll(btn);
  33. }
  34. }
  35. private void addEvents() {
  36. for (int i=0; i<list.size(); i++) {
  37. list.get(i).setOnAction(e -> {
  38. list.get(i).setStyle("-fx-background-color: green"); // здесь проблема
  39. });
  40. }
  41. }
  42. }

Решение задачи: «Задать цвет кнопки»

textual
Листинг программы
  1. btn.setOnMousePressed(e->{
  2.             btn.setStyle("-fx-background-color: green");
  3.         });
  4. btn.setOnMouseReleased(e->{
  5.             btn.setStyle("-fx-background-color: grey");
  6.         });

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут