gpt4 book ai didi

java - 如何让我的 Java GUI 正确计算字段?

转载 作者:行者123 更新时间:2023-11-30 10:38:48 26 4
gpt4 key购买 nike

我没有遇到任何错误,但是当我运行该程序时没有任何反应。任何帮助,将不胜感激。我只需要能够添加起始余额,然后计算存款或取款。

package account;

import java.awt.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

class GUI implements ActionListener{

JTextField txt, txt2, txt3;
JButton submit;
JLabel balance;
double Balance = 0.00;

GUI(){
JFrame main = new JFrame("Account GUI ");
main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
txt = new JTextField(10);
txt2 = new JTextField(10);
txt3 = new JTextField(10);

JPanel gui = new JPanel(new BorderLayout(8,8));
gui.setBorder(new EmptyBorder(8,8,8,8));
main.setContentPane(gui);

JPanel labels = new JPanel(new GridLayout(0,1));
JPanel controls = new JPanel(new GridLayout(0,1));
gui.add(labels, BorderLayout.WEST);
gui.add(controls, BorderLayout.CENTER);

labels.add(new JLabel("Starting Balance"));
controls.add(txt);
txt.addActionListener(this);
labels.add(new JLabel("Deposit Amount: "));
controls.add(txt2);
txt2.addActionListener(this);
labels.add(new JLabel("Withdraw Amount: "));
controls.add(txt3);
txt3.addActionListener(this);

submit = new JButton("Submit");
gui.add(submit, BorderLayout.SOUTH);
balance = new JLabel("New Balance " + Balance);
gui.add(balance,BorderLayout.NORTH);
submit.addActionListener(this);

main.pack();
main.setVisible(true);
}
public void actionPerformed(ActionEvent arg0) {
if (txt!=null){
double strtblnc = Double.parseDouble(txt.getText());
Balance = Balance + strtblnc;
}
else if (txt2!=null){
double dpst = Double.parseDouble(txt2.getText());
Balance = Balance + dpst;
}
else if(txt3!=null){
double wthdrw = Double.parseDouble(txt3.getText());
Balance = Balance - wthdrw;
}
}
public static void main(String[] args) {
GUI test = new GUI();
}
}

最佳答案

您没有收到新余额的原因是因为您实际上从未将文本重置为您的 JLabel。当您最初初始化时:

balance = new JLabel("New Balance " + Balance);

您将平衡设置为 0.00。话虽如此,您需要添加:

balance.setText("New Balance " + Balance);

为您提供更新后的余额。

我还注意到,如果您将文本字段留空,您发布的代码将不起作用。查看下面更新的代码并尝试此操作。

public void actionPerformed(ActionEvent arg0) {

double strtblnc;
double dpst;
double wthdrw;

String sTxt = txt.getText();
String sTxt2 = txt2.getText();
String sTxt3 = txt3.getText();

if(sTxt.isEmpty())
sTxt = "0";

if(sTxt2.isEmpty())
sTxt2 = "0";

if(sTxt3.isEmpty())
sTxt3 = "0";


dpst = Double.parseDouble(sTxt2);//parses deposit;
strtblnc = Double.parseDouble(sTxt); //parses starting balance;
wthdrw = Double.parseDouble(sTxt3); //parses withdraw;

Balance = Balance + strtblnc + dpst - wthdrw;
balance.setText("New Balance " + Balance);
}

关于java - 如何让我的 Java GUI 正确计算字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39576715/

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