gpt4 book ai didi

java-为什么我的 "deposit"方法不适用于带有 gui 的 ATM?

转载 作者:行者123 更新时间:2023-12-02 04:17:36 25 4
gpt4 key购买 nike

我正在制作一台 ATM,用户必须首先输入密码 (1234),然后一旦正确输入密码,用户就可以提取 50、100 或 200 美元,或者存款低于 1000 美元。我的提款方法都有效,但是当我运行程序并尝试存款时,输入金额并尝试点击“输入”按钮后什么也没有发生。好像我的输入按钮不起作用。这是我的存款方式使用的代码:

 if (event.getSource() == deposit) {
instructionScreen.setText("Enter the amount you would like to deposit, then click Enter.");

if (event.getSource() == enter) {
saveScreen = displayInput.getText();
double add = Double.parseDouble(saveScreen);
if (add <= 1000) {
balance += add;
instructionScreen.setText("Your new balance is $" + balance + ".");
}
else {
instructionScreen.setText("The maximum amount you can deposit is $1000. Please enter a new amount.");
displayInput.setText("");
if (event.getSource() == enter) {
saveScreen = displayInput.getText();
add = Double.parseDouble(saveScreen);
}
}

displayInput.setText("");
System.out.println("A deposit of $" + add + "was made. Your new balance is $" + balance);
}
}

当我输入存款金额后按回车键时,代码有什么问题导致我的存款没有执行任何操作?

最佳答案

如果您的程序是线性控制台程序,那么它会很好地工作,但这不是事件驱动编程的工作方式。您不需要期望源立即神奇地从存款变为输入,而是需要在选择存款时更改对象的状态,也许可以通过更改 boolean 字段,然后在输入的操作监听器中测试该字段。

例如,

if (event.getSource() == deposit) {
instructionScreen.setText("Enter the amount you would like to deposit, then click Enter.");
depositState = true; // a boolean field
} else if (event.getSource() == enter) {
if (depositState) {
depositState = false; // reset it

saveScreen = displayInput.getText();
double add = Double.parseDouble(saveScreen);
// .... etc

关于java-为什么我的 "deposit"方法不适用于带有 gui 的 ATM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33138929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com