📄 consumetotal.java
字号:
package consume;
import javax.microedition.lcdui.*;
import java.io.*;
import javax.microedition.rms.*;
import java.util.Date;
public class ConsumeTotal extends Form implements CommandListener {
TextField tf0,tf1,tf2,tf3,tf4; //输入域和显示域
String d1, d2; //用于比较的字符串
Command cmdOk; //确定按钮
/** Constructor */
public ConsumeTotal() {
super("Input Month Data"); //构造一个form对象
try {
jbInit();
}
catch (Exception e) {
e.printStackTrace();
}
}
/**Component initialization*/
private void jbInit() throws Exception {
StringItem si=new StringItem(null,"请输入3位月份(英文)如:Nov");
append(si);
tf1 = new TextField("输入汇总月份", null, 10, TextField.ANY);
append(tf1);
// Set up this Displayable to listen to command events
setCommandListener(this);
// add the Exit command
addCommand(new Command("返回", Command.BACK, 1));
cmdOk=new Command("确定", Command.OK, 1);
addCommand(cmdOk);
}
/**Handle command events*/
public void commandAction(Command command, Displayable displayable) {
/** @todo Add command handling code */
if (command.getCommandType() == Command.OK) {
tf2 = new TextField("汇总和是:", null, 10, TextField.ANY);
tf3=new TextField("最大值是:", null, 10, TextField.ANY);
tf4=new TextField("最小值是:", null, 10, TextField.ANY);
float max=0,min=100 ,sum = 0;//汇总和
int k=0;
RecordStore rs;
try {
rs = RecordStore.openRecordStore("consume", true);
RecordFilter rf = new MyFilter();
RecordEnumeration enum = rs.enumerateRecords(rf, null, false);
while (enum.hasNextElement()) {
try {
byte[] data = enum.nextRecord();
int n=enum.numRecords() ;
k++;
ByteArrayInputStream bis = new ByteArrayInputStream(data);
DataInputStream is = new DataInputStream(bis);
ConsumeData record = new ConsumeData();
//must read all Field
record.date = new Date();
record.date.setTime(is.readLong());
record.Num = is.readFloat();
//显示消费明细
tf0 = new TextField("消费金额是:"+k, null, 10, TextField.ANY);
append(tf0);
tf0.setString(String.valueOf(record.Num));
if(max<record.Num){//求最大值
max=record.Num;
}
if(min>record.Num){//求最大值
min=record.Num;
}
sum = sum + record.Num; //累加
is.close();
}
catch (IOException e) {}
catch (InvalidRecordIDException ex) {
// Ignore deleted record
}
}
enum.destroy();
rs.closeRecordStore();
append(tf2);//求和
append(tf3);//最大值
append(tf4);//最小值
tf2.setString(String.valueOf(sum)); //在循环外显示
tf3.setString(String.valueOf(max));
tf4.setString(String.valueOf(min));
this.removeCommand(cmdOk);
}
catch (Exception ie) {}
}
if (command.getCommandType() == Command.BACK) {
ConsumeMIDlet.instance.backmain();
}
}
//定义过滤器,实现记录的查询
public class MyFilter implements RecordFilter {
public boolean matches(byte[] candidate) {
try {
ByteArrayInputStream bis = new ByteArrayInputStream(candidate);
DataInputStream is = new DataInputStream(bis);
ConsumeData record = new ConsumeData();
record.date = new Date();
record.date.setTime(is.readLong());
d1 = tf1.getString();//取得输入的月份值
d2 = (String.valueOf(record.date)).substring(4, 7);//截取月份值
record.Num = is.readFloat();
is.close();
}
catch (Exception e) {}
finally {
if (d1.equals(d2))//判断输入的月份是否与取得的相等
return true;
else
return false;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -