rmsstreamoperation.java
来自「java手机程序开发随书光盘源代码」· Java 代码 · 共 180 行
JAVA
180 行
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import javax.microedition.rms.*;
import java.io.*;
public class RMSStreamOperation extends MIDlet implements CommandListener{
Display display;
RecordStore stockStore = null;
Alert displayData;
List stockList;
Form addStock;
TextField stockName, boughtPrice, soldPrice, stockUnits;
Command exitCmd, addCmd, okCmd,backCmd;
public RMSStreamOperation(){
display = Display.getDisplay(this);
try{
stockStore = RecordStore.openRecordStore("stock", true);
}
catch(Exception ex){}
stockList = new List("股票选单", Choice.IMPLICIT);
exitCmd = new Command("退出", Command.EXIT, 1);
addCmd = new Command("新增", Command.SCREEN, 1);
stockList.addCommand(exitCmd);
stockList.addCommand(addCmd);
stockList.setCommandListener(this);
addStock = new Form("新增一笔");
stockName = new TextField("股票名称","",20, TextField.ANY);
boughtPrice = new TextField("买进价格","",10, TextField.NUMERIC);
soldPrice = new TextField("卖出价格","",10, TextField.NUMERIC);
stockUnits = new TextField("交易张数","",10, TextField.NUMERIC);
addStock.append(stockName);
addStock.append(boughtPrice);
addStock.append(soldPrice);
addStock.append(stockUnits);
okCmd = new Command("确定", Command.OK, 1);
backCmd = new Command("返回", Command.BACK, 1);
addStock.addCommand(okCmd);
addStock.addCommand(backCmd);
addStock.setCommandListener(this);
displayData = new Alert("详细资料");
}
public void startApp(){
initData();
display.setCurrent(stockList);
}
private void initData(){
try{
for(int i=1;i<stockStore.getNextRecordID();i++){
StockData data = new StockData();
data.readFromRecord(stockStore, i);
stockList.append(data.name, null);
}
}
catch(Exception ex){}
}
public void pauseApp(){
}
public void destroyApp(boolean unconditional){
try{
stockStore.closeRecordStore();
}catch(Exception ex){}
}
public void commandAction(Command c, Displayable d){
if(c == exitCmd){
destroyApp(true);
notifyDestroyed();
}
else if(c == addCmd){
stockName.setString(null);
boughtPrice.setString(null);
soldPrice.setString(null);
stockUnits.setString(null);
display.setCurrent(addStock);
}
else if(c == List.SELECT_COMMAND){
int index = stockList.getSelectedIndex();
StockData data = new StockData();
data.readFromRecord(stockStore, index+1);
displayData.setString(data.toString());
display.setCurrent(displayData);
}
else if(c == okCmd){
saveData();
StockData data = new StockData();
try{
data.readFromRecord(stockStore, stockStore.getNextRecordID()-1);
stockList.append(data.name, null);
}
catch(Exception ex){}
display.setCurrent(stockList);
}
}
private void saveData(){
String name = stockName.getString();
int bought = 0, sold = 0, units = 0;
if(boughtPrice.getString() != null)
bought = Integer.parseInt(boughtPrice.getString());
if(soldPrice.getString() != null)
sold = Integer.parseInt(soldPrice.getString());
if(stockUnits.getString() != null)
units = Integer.parseInt(stockUnits.getString());
StockData data = new StockData(name, bought, sold, units);
data.writeToRecord(stockStore);
}
}
class StockData{
String name;
int boughtPrice;
int soldPrice;
int units;
boolean isSold;
int recordID;
public StockData(){
}
public StockData(String name, int boughtPrice, int soldPrice, int units){
this.name = name;
this.boughtPrice = boughtPrice;
this.soldPrice = soldPrice;
this.units = units;
isSold = (soldPrice>0?true:false);
}
public void writeToRecord(RecordStore rs){
byte[] stock = null;
try{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeUTF(name);
dos.writeInt(boughtPrice);
dos.writeInt(soldPrice);
dos.writeInt(units);
dos.writeBoolean(isSold);
stock = baos.toByteArray();
recordID = rs.addRecord(stock, 0, stock.length);
baos.close();
dos.close();
}
catch(Exception ex){
}
}
public void readFromRecord(RecordStore rs, int RecordID){
try{
byte[] data = rs.getRecord(RecordID);
ByteArrayInputStream bais = new ByteArrayInputStream(data);
DataInputStream dis = new DataInputStream(bais);
name = new String(dis.readUTF());
boughtPrice = dis.readInt();
soldPrice = dis.readInt();
units = dis.readInt();
isSold = dis.readBoolean();
bais.close();
dis.close();
}
catch(Exception ex){}
}
public String toString(){
String stockString = "股票名称:"+name+"\n"+
"买进价格:"+boughtPrice+"じ\n"+
"卖出价格:"+soldPrice+"じ\n"+
"交易张数:"+units+"眎\n"+
"获利金额:"+((soldPrice-boughtPrice)*1000)+"元";
return stockString;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?