Java Swing程序计算平方后结果无法在GUI的resultField字段展示求助

代码核心问题及修复方案
- 计算按钮点击事件逻辑不全:
calcButtonActionPerformed仅调用了平方计算方法,既没有读取用户最新输入的数值,也没有把计算结果写入结果展示字段 - 输入值读取时机错误:读取输入框内容的逻辑写在了
inputTextActionPerformed方法中,该方法仅在输入框按回车时触发,用户直接点计算按钮时拿不到最新输入值 - 方法语法错误:
calculate方法的参数没有声明int类型,不符合Java强类型语法要求 - 主方法逻辑错误:类名为
Calc,但主方法中实例化的是不存在的InterfaceGrafica类,且静态主方法中不能直接调用非静态方法、访问非静态成员变量,多余的calculate调用可直接删除 - 冗余逻辑:
resultFieldActionPerformed是结果框按回车的触发事件,和需求无关,可直接删除
修正后可运行代码
public class Calc extends javax.swing.JFrame { public Calc() { initComponents(); } private void calcButtonActionPerformed(java.awt.event.ActionEvent evt) { // 点击按钮时直接读取最新输入内容,避免依赖输入框回车事件 String inputStr = inputText.getText().trim(); // 输入合法性校验,避免非数字输入抛出异常 int inputNum; try { inputNum = Integer.parseInt(inputStr); } catch (NumberFormatException e) { resultField.setText("请输入合法数字"); return; } int result = calculate(inputNum); resultField.setText(String.valueOf(result)); } // 补全参数的int类型声明 public int calculate(int inputValueInInteger) { return inputValueInInteger * inputValueInInteger; } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { // 实例化当前类,删除无效的calculate调用 new Calc().setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JButton calcButton; private javax.swing.JTextField inputText; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JTextField resultField; // End of variables declaration // 自动生成的initComponents等方法保留即可 }
内容的提问来源于stack exchange,提问作者Android Programmer
相关产品推荐
相关产品推荐

