JavaFX событие щелчка мыши для ярлыков - PullRequest
0 голосов
/ 04 апреля 2020

Я пытаюсь создать простое приложение-планировщик с использованием JavaFX. Моя текущая цель состоит в том, чтобы иметь возможность:

  1. щелкнуть панель календаря (уже реализовано)
  2. , ввести задачу, нажать клавишу ввода и отобразить ее в качестве метки. (уже реализовано)
  3. нажмите на размещенные в данный момент ярлыки и удалите их из календаря. (выпуск)

На третьем этапе у меня больше всего проблем. Я уверен, что правильно настраиваю событие мыши для метки, но при нажатии на одну из меток запускается событие мыши для панели. Мне нужен способ переопределить событие мыши панели, чтобы я мог использовать событие мыши надписей, но я не слишком уверен, как go об этом. Любой отзыв будет отличным!

this.setOnMouseClicked(e -> 
    {
        TextField field = new TextField();
        this.getChildren().add(field);

        //sets field as a label
         field.setOnKeyPressed(new EventHandler<KeyEvent>() {
                @Override
                public void handle(KeyEvent key) {
                    KeyCode k = key.getCode();
                    if ((k.equals(KeyCode.ENTER))) {
                        Label lab = new Label(field.getText());
                        getChildren().add(lab);
                        getChildren().remove(field);
                    }
                }
            });

         //removes textfield and label
         field.setOnKeyPressed(new EventHandler<KeyEvent>() {
            @Override
            public void handle(KeyEvent ke) {
                KeyCode kc = ke.getCode();
                if ((kc.equals(KeyCode.ESCAPE))) {
                    getChildren().remove(field);
                }
            }
        });      
    }); 
    if(lab != null)
    {
        lab.setOnMouseEntered(new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent e) {
                setStyle("-fx-background-color: #00FF00;");
            }
          });
    }
...