已有101人关注
《java从入门到精通》P512
发表在Java图书答疑 2010-10-14
是否精华
版块置顶:
我买的是Java从入门到精通的第一版在该书的P512页的进货统计有这样一个方法
private final void ComputeInfo() {
// 计算代码
int rows = table.getRowCount();
int count = 0;
double money = 0.0;
// 计算品种数量
TbSpinfo column = null;
Object valueAt = table.getValueAt(rows - 1, 0);
if(!(valueAt instanceof TbSpinfo))
return;
if (rows > 0)
column = (TbSpinfo) valueAt;
if (rows > 0 && (column == null || column.getId().isEmpty()))
rows--;
// 计算货品总数和金额
for (int i = 0; i < rows; i++) {
String column7 = (String) table.getValueAt(i, 7);
String column6 = (String) table.getValueAt(i, 6);
int c7 = (column7 == null || column7.isEmpty()) ? 0 : Integer
.parseInt(column7);
float c6 = (column6 == null || column6.isEmpty()) ? 0 : Float
.parseFloat(column6);
count += c7;
money += c6 * c7;
}

pzslField.setText(rows + "");
hpzsField.setText(count + "");
hjjeField.setText(money + "");
}
我思考了半天还是不明白,而书上没有详细的解释,还请各位老师详细的解释一下,非常感谢
分享到:
精彩评论 1
aster
学分:0 LV1
TA的每日心情
开心
2023-01-31 09:41:43
2010-10-14
沙发
读者您好:感谢您购买我们公司的书籍。由于您没有具体说明哪里不明白,我重新给代码加了一下注释,希望对您有帮助。如果还有问题,欢迎继续发帖讨论!
private final void ComputeInfo() {
// 计算代码
int rows = table.getRowCount();//获得表格中数据的行数
int count = 0;//定义一个名为count的整型变量并赋值为0
double money = 0.0;//定义一个名为money的浮点型变量并赋值为0.0
// 计算品种数量
TbSpinfo column = null;
Object valueAt = table.getValueAt(rows - 1, 0);//获得最后一行,第一列的那个单元格的值
if(!(valueAt instanceof TbSpinfo))//如果那个单元格不是TbSpinfo则退出该方法
return;
if (rows > 0)
column = (TbSpinfo) valueAt;//如果表格中的数据行数大于0则将获得的valueAt赋值给column,column应该是个类型为TbSpinfo的域变量
if (rows > 0 && (column == null || column.getId().isEmpty()))//如果单元格的最后一行数据为空,则将行数减一,即不计算最后一行的数据
rows--;
// 计算货品总数和金额
for (int i = 0; i < rows; i++) {//使用一个for循环计算所有表格中合法的数据行
String column7 = (String) table.getValueAt(i, 7);//获得第i行 第6列的单元格的值
String column6 = (String) table.getValueAt(i, 6);//获得第i行 第5列的单元格的值
int c7 = (column7 == null || column7.isEmpty()) ? 0 : Integer
.parseInt(column7);//如果第i行第6列的单元格的值是空,则将c7赋值为0,否则赋值为单元格的值
float c6 = (column6 == null || column6.isEmpty()) ? 0 : Float
.parseFloat(column6);//如果第i行第5列的单元格的值是空,则将c7赋值为0,否则赋值为单元格的值
count += c7;//计算第6列的总计值
money += c6 * c7;//计算商品的总价格
}

pzslField.setText(rows + "");//更新相关的标签
hpzsField.setText(count + "");//更新相关的标签
hjjeField.setText(money + "");//更新相关的标签
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照