我有一个不透明的primaryStage。当鼠标在窗口中内嵌时 - 不透明度1.当鼠标从窗口退出时 - 0.8。 部分代码:
scene.setOnMouseEntered(new EventHandler<javafx.scene.input.MouseEvent>() {
@Override
public void handle(javafx.scene.input.MouseEvent event) {
primaryStage.setOpacity(1);
}
});
scene.setOnMouseExited(new EventHandler<javafx.scene.input.MouseEvent>() {
@Override
public void handle(javafx.scene.input.MouseEvent event) {
primaryStage.setOpacity(0.3);
}
});
如果我在应用程序中键入文本字段而不是窗口上的鼠标,则场景设置不透明度为0.8。 如何在键入文本时设置不透明度? 请给我建议。
答案 0 :(得分:0)
按下某个键时,可以使其变为不透明:
scene.addEventFilter(KeyEvent.KEY_PRESSED, e -> primaryStage.setOpacity(1));
如果您希望它在用户“停止”时恢复为半透明状态。打字,它有点棘手,因为你可以处理的是个人按键。如果在一段时间内未按任何键,则需要一个重置不透明度的计时器。 E.g:
PauseTransition pause = new PauseTransition(Duration.seconds(1.0));
pause.setOnFinished(e -> primaryStage.setOpacity(0.8));
scene.addEventFilter(KeyEvent.KEY_PRESSED, e -> {
pause.playFromStart();
primaryStage.setOpacity(1);
});