gpt4 book ai didi

java - 一个 jtextfields 中 jtextfields 的总和值

转载 作者:行者123 更新时间:2023-12-01 09:26:03 28 4
gpt4 key购买 nike

我想找到jtextfields(sht1到sht13)的总和并将结果放入llog jtextfield中,但如果我不在每个jtextfield(sht1到sht13)中放入值,它就不起作用 我如何修复我的代码,以便它只接受我选择放置值的 jtextfields 的值

private void llogMouseClicked(java.awt.event.MouseEvent evt) {                                  
try{
int sht1 = Integer.parseInt(vl1.getText());
int sht2 = Integer.parseInt(vl2.getText());
int sht3 = Integer.parseInt(vl3.getText());
int sht4 = Integer.parseInt(vl4.getText());
int sht5 = Integer.parseInt(vl5.getText());
int sht6 = Integer.parseInt(vl6.getText());
int sht7 = Integer.parseInt(vl7.getText());
int sht8 = Integer.parseInt(vl8.getText());
int sht9 = Integer.parseInt(vl9.getText());
int sht10 = Integer.parseInt(vl10.getText());
int sht11 = Integer.parseInt(vl11.getText());
int sht12 = Integer.parseInt(vl12.getText());
int sht13 = Integer.parseInt(vl13.getText());
if (vl1.getText()==null||vl2.getText()==null||vl3.getText()==null||vl4.getText()==null||vl5.getText()==null||vl6.getText()==null||vl7.getText()==null||vl8.getText()==null||vl9.getText()==null||vl10.getText()==null||vl11.getText()==null||vl12.getText()==null||vl13.getText()==null){
sht1=0;
sht2=0;
sht3=0;
sht4=0;
sht5=0;
sht6=0;
sht7=0;
sht8=0;
sht9=0;
sht10=0;
sht11=0;
sht12=0;
sht13=0;
int sum= sht1 + sht2 + sht3 + sht4 + sht5 + sht6 + sht7 + sht8 + sht9 + sht10 + sht11 + sht12 + sht13;
llog.setText(""+ sum);}

最佳答案

建议:

  • 将您的 JTextField 放入 ArrayList<JTextField>
  • 在上面的代码中,使用 for 循环迭代此列表。
  • 在循环内解析字段。如果解析失败,请忽略 NumberFormatException - 但最重要的是,不要尝试将任何结果(这没有意义)添加到您的总和中。换句话说,将解析后的值添加到 try block 中的总和中,并将 catch block 留空(这是少数几次可以这样做的情况之一)。

例如,

// note that likely you should be using an ActionListener not a MouseListener
private void myButtonActionPerformed(java.awt.event.ActionEvent e) {
int sum = 0;
// assuming a JTextField ArrayList<JTextField> called vFieldList
for (JTextField vField : vFieldList) {
String text = vField.getText().trim(); // get text and trim out all outside whitespace
try {
int value = Integer.parseInt(text);

// if exception thrown, this line won't be reached
sum += value; // add value to sum
} catch (NumberFormatException nfe) {
// ignore exception
}
}

llog.setText("" + sum);
}

您是否看到,通过使用列表和 for 循环,这如何简化了代码,使其更容易调试或增强?

更好的是:

  • 根本不要使用 JTextFields,而是使用一堆初始化为 0 的 JSpinner。

关于java - 一个 jtextfields 中 jtextfields 的总和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39820820/

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