Swing按钮点击执行计算方法未获取文本框最新值问题
问题原因
你定义的numX、numY两个变量仅在窗口初始化(执行initialize方法)时,读取了一次文本框的初始值(也就是你预设的"1")完成赋值。后续你在界面上修改文本框的内容时,这两个局部变量的值不会自动同步更新,按钮点击事件里调用计算方法时用的始终是初始化时保存的旧值,才会出现结果不变的问题。
修复方案
将读取文本框最新值的逻辑挪到按钮的点击事件回调中,每次点击计算按钮时,再主动获取当前文本框的内容转成数值参与计算即可。
修改后的按钮监听代码示例:
JButton submitBtn = new JButton("Calculate Percentage"); submitBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // 每次点击时读取最新的文本框值 double numX = Double.parseDouble(textField.getText()); double numY = Double.parseDouble(textField_1.getText()); double result = calcdUp(numX,numY); results.setText(numX + " is " + result + " percent of " + numY); } });
同时可以把原来initialize方法里定义在文本框初始化后面的double numX = ...、double numY = ...两行代码删除,避免冗余。
内容的提问来源于stack exchange,提问作者MCIT
相关产品推荐
相关产品推荐

