我想要找出jtextfield的和(sht1到sht13),并将结果放入llog jtextfield中,但如果我不在每个jtextfield中都放值(sht1到sht13),这将不起作用。我如何修复我的代码,使其只接受我选择的jtextfield的值
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);}发布于 2016-10-03 03:37:20
建议:
在上面的代码中,使用ArrayList<JTextField>
例如,
// 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循环,这将如何简化代码,使其更易于调试或增强?
更好的是:
https://stackoverflow.com/questions/39820820
复制相似问题