Java程序For循环异常显示3/6/9而非1/2/3的问题求助
问题分析
你的核心问题是每次点击按钮时执行了完整的for循环,而非单次递增计数:
- 假设用户输入3,点击一次"next day"按钮,for循环会执行3次,
tradingDayCounter直接从0累加至3,因此显示"TRADING DAY 3"; - 再次点击按钮,循环又执行3次,计数器从3累加至6,显示"TRADING DAY 6",以此类推。
修复方案
移除for循环,每次点击按钮仅让计数器递增1,同时添加边界判断避免超出用户设定的交易日数量:
修改后的tradeButtonListener代码
public class tradeButtonListener implements ActionListener { public void actionPerformed(java.awt.event.ActionEvent event) { // 仅在未达到最大交易日时递增计数 if (tradingDayCounter < tradingDaysValue) { tradingDayCounter++; tradingDayLabel.setText("TRADING DAY " + tradingDayCounter); } else { // 可选:达到上限后的提示逻辑 tradingDayLabel.setText("所有交易日已完成"); // 可选:禁用按钮防止重复点击 ((JButton) event.getSource()).setEnabled(false); } } }
额外优化:重置计数器
在用户重新输入交易日数量时,重置计数器为0,避免旧计数干扰新的一轮流程:
public class startButtonListener implements ActionListener { public void actionPerformed(java.awt.event.ActionEvent event) { tradingDaysValue = Integer.parseInt(tradingDaysField.getText()); // 重置计数器 tradingDayCounter = 0; // 可选:重新启用next day按钮(如果之前被禁用) tradeButton.setEnabled(true); } }
内容的提问来源于stack exchange,提问作者helpmepls
相关产品推荐
相关产品推荐

