如何在Java文本框中设置double类型数据并正确显示计算结果?
问题分析与解决
核心问题
你代码里的Integer.parseInt()只能解析纯整数格式的字符串,当输入1.222、2.5这类小数时,会直接抛出NumberFormatException,导致后续的计算、结果赋值逻辑根本无法执行,自然看不到输出。
修正后的代码
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { try { // 替换为Double.parseDouble,支持解析小数输入 double Width = Double.parseDouble(jTextField1.getText()); double Height = Double.parseDouble(jTextField2.getText()); // 修正变量名拼写:Hight → Height double SqFt = Width * Height; double SqInch = SqFt / 144; // 可选:格式化结果为指定小数位数,避免超长小数(示例保留2位) String r = String.format("%.2f", SqInch); // 如果不需要格式化,也可以用原写法:String r = String.valueOf(SqInch); jTextField4.setText(r); jTextField3.setEditable(false); } catch (NumberFormatException e) { // 处理用户输入非数字的情况,给出提示 jTextField4.setText("请输入有效数字"); } }
关键改动说明
- 用
Double.parseDouble()替代Integer.parseInt(),这是支持小数输入的核心修改。 - 添加
try-catch块捕获异常,避免用户输入非数字内容时程序崩溃,同时给用户明确的反馈。 - 可选优化:通过
String.format()格式化输出结果,让显示的小数更整洁(比如保留2位),按需选择即可。 - 修正了变量名拼写错误
Hight→Height,符合代码规范。
内容的提问来源于stack exchange,提问作者NAVEEN AKALANKA
相关产品推荐
相关产品推荐

