You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaFX事件处理添加条件判断:定时器输入范围校验问题

解决方案:在Lambda表达式中添加范围判断与异常处理

你可以在Lambda表达式中用大括号包裹多条语句,轻松实现范围判断逻辑,同时处理输入非数字的异常情况,避免程序崩溃。修改后的事件处理代码如下:

timeField.setOnAction((evt) -> {
    try {
        double minutes = Double.parseDouble(timeField.getCharacters().toString());
        // 判断输入是否在1-60的有效范围内
        if (minutes >= 1 && minutes <= 60) {
            timerFace.setLength(minutes * 6);
        } else {
            // 超出范围时设置默认值360
            timerFace.setLength(360);
        }
    } catch (NumberFormatException e) {
        // 输入非数字格式时,同样设置默认值360
        timerFace.setLength(360);
    }
});

关键说明:

  • Lambda表达式并非只能写单条语句,用{}包裹即可编写多行逻辑,这是实现复杂判断的核心。
  • 加入try-catch块是为了处理用户输入非数字字符的情况,避免抛出NumberFormatException导致程序异常。
  • 如果你确定用户只会输入数字,也可以简化为三元运算符的写法(确保表达式合法即可):
    timeField.setOnAction((evt) -> {
        double minutes = Double.parseDouble(timeField.getCharacters().toString());
        timerFace.setLength((minutes >= 1 && minutes <= 60) ? minutes * 6 : 360);
    });
    

内容的提问来源于stack exchange,提问作者Jack Wanamaker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 04:57:12