Я пытаюсь создать простое приложение-планировщик с использованием JavaFX. Моя текущая цель состоит в том, чтобы иметь возможность:
- щелкнуть панель календаря (уже реализовано)
- , ввести задачу, нажать клавишу ввода и отобразить ее в качестве метки. (уже реализовано)
- нажмите на размещенные в данный момент ярлыки и удалите их из календаря. (выпуск)
На третьем этапе у меня больше всего проблем. Я уверен, что правильно настраиваю событие мыши для метки, но при нажатии на одну из меток запускается событие мыши для панели. Мне нужен способ переопределить событие мыши панели, чтобы я мог использовать событие мыши надписей, но я не слишком уверен, как 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;");
}
});
}