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

FXML欧元转多货币工具优化:回车触发计算+逗号小数格式

欧元转其他货币程序优化实现

需求说明

现有基于FXML的欧元转货币程序可正常运行,需完成两处优化:

  • 按下回车键时触发转换计算
  • 转换结果使用逗号作为小数分隔符(示例:1234,56)

修改后的完整代码

private void onAction(ActionEvent event) {
    try {
        double conversor = 0;
        String euros = ValorEuros.getText();
        // 处理用户输入的逗号,转为小数点用于数值解析
        double cantEuros = Double.parseDouble(euros.replace(',', '.'));
        
        // 检查输入非空且有目标货币被选中
        if (!ValorEuros.getText().isEmpty() && 
            (Libra.isSelected() || Dolar_americano.isSelected() 
             || Rupia_india.isSelected() || Yuan_chino.isSelected())) {
            if (Libra.isSelected()) {
                conversor = cantEuros * 0.88;
            } else if (Dolar_americano.isSelected()) {
                conversor = cantEuros * 1.19;
            } else if (Rupia_india.isSelected()) {
                conversor = cantEuros * 80.22;
            } else {
                conversor = cantEuros * 7.5;
            }
        }
        
        // 设置小数分隔符为逗号
        DecimalFormatSymbols symbols = new DecimalFormatSymbols();
        symbols.setDecimalSeparator(',');
        DecimalFormat df = new DecimalFormat("#.###", symbols);
        String redondeado = df.format(conversor);
        ResultadoConversion.setText(redondeado);
    } catch (NumberFormatException e) {
        ResultadoConversion.setText("Error en formato de número");
    }
}

@FXML
private void onKeyPressed(KeyEvent event) {
    // 检测到回车键时触发转换
    if (event.getCode() == KeyCode.ENTER) {
        onAction(new ActionEvent());
        event.consume(); // 消费事件避免重复触发
    }
}

优化点说明

  1. 回车键触发转换

    • 修改onKeyPressed方法,当检测到KeyCode.ENTER时,直接调用onAction方法执行转换逻辑
    • 调用event.consume()消费事件,防止事件传递导致重复执行
  2. 逗号作为小数分隔符

    • 创建DecimalFormatSymbols实例,通过setDecimalSeparator(',')将小数分隔符设置为逗号
    • 初始化DecimalFormat时传入自定义的符号配置,确保格式化后的结果使用逗号替代小数点
    • 保留原有的#.###格式规则,保证结果最多保留三位小数

另外,移除了原代码中无意义的do-while循环和isSelected方法,简化代码逻辑,避免不必要的循环执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 21:08:16