我正在尝试使用JavaFX构建一个简单的计划程序应用程序。我当前的目标是能够:
第3步是我遇到最大麻烦的地方。我相信我可以正确设置标签的鼠标事件,但是当我单击其中一个标签时,它将为面板运行鼠标事件。我需要一种方法来覆盖窗格的鼠标事件,以便可以使用标签鼠标事件,但是我不太确定该如何处理。任何反馈都很棒!
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;");
}
});
}