java-为什么我的;“存款”;方法不适用于带有gui的ATM?
我正在制作一个ATM机,用户必须首先输入他们的pin(1234),然后一旦pin输入正确,用户可以提取50美元、100美元或200美元,或者在1000美元以下存款。我的取款方法都是有效的,但是当我运行我的程序并尝试存款时,在我输入金额并尝试点击“回车”按钮后,什么也没有发生。好像我的“回车”按钮不起作用。以下是我的存款方式使用的代码:java-为什么我的;“存款”;方法不适用于带有gui的ATM?,java,user-interface,Java,User Interface,我正在制作一个ATM机,用户必须首先输入他们的pin(1234),然后一旦pin输入正确,用户可以提取50美元、100美元或200美元,或者在1000美元以下存款。我的取款方法都是有效的,但是当我运行我的程序并尝试存款时,在我输入金额并尝试点击“回车”按钮后,什么也没有发生。好像我的“回车”按钮不起作用。以下是我的存款方式使用的代码: if (event.getSource() == deposit) { instructionScreen.setText("Enter the amo
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);
}
}
if(event.getSource()==存款){
说明屏幕上的.setText(“输入您要存入的金额,然后单击Enter。”);
if(event.getSource()==enter){
saveScreen=displayInput.getText();
double add=double.parseDouble(保存屏幕);
如果(添加如果您的程序是线性控制台程序,那么它会工作得很好,但这不是事件驱动编程的工作方式。如果选择了deposit,您需要更改对象的状态,可能是更改一个布尔字段,然后测试该字段,而不是期望源立即神奇地从deposit更改为enter在enter的动作侦听器中
e、 g
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