⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kbaostock.java

📁 目前版本已经对 nokia 手机优化界面 适用于所有 Java 手机 可根据各手机再进一步美化(定制)界面
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
   版权声明
 
   本程序作者是 www.kbao.com 保留所有权利
 
   我们对于本软件不作任何保证, 不管是明确的表达还是隐含的推论. 
   本软件可用于任何目的, 包括商业目的, 我们不作任何限制和不承担任何责任.
   再分发本程序或者它的修改程序, 请保留本版权声明
 
   如果你对于本软件有任何修改,你可以访问我们的网站相关页面
   http://www.kbao.com/bbs/bbsview.php?bbsid=StockDev
   并将新的程序上传. 我们将非常欢迎和尊重你的努力.
  
*/

/*

   正好证券 Web 服务器是证券信息专用服务器软件, 广泛用于证券行情和资讯传播, 
   详细介绍见 http://www.kbao.com
   
   J2ME 扩展服务是正好证券 Web 服务器的一个扩展服务程序, 它提供了适合于 J2ME 程序
   使用的股票行情查询. 部分功能如下: 以 http://www.kbao.com:1680 为例

   最新行情 utf-8 编码	
   http://www.kbao.com:1680/j2me/bidst/SH600000
   内容格式: ( 以 \t 分隔数据项 以 \r\n 结束 )
   代码 名称 时间 前收 开 高 低 新 量 额 买1价 买1量 卖1价 卖1量 买2价 买2量 卖2价 卖2量 买3价 买3量 卖3价 卖3量
   
   最新行情 png 图像
   http://www.kbao.com:1680/j2me/bidsp/SH600000?scale=160_190

   今日分时走势 png 图像
   http://www.kbao.com:1680/j2me/mins/SH600000?scale=160_190&mask=cvy

   K 线图 png 图像
   http://www.kbao.com:1680/j2me/kdays/SH600000?scale=160_190&mask=cvy&ktype=10001

   排行榜 utf-8 编码
   http://www.kbao.com:1680/j2me/xlist/SHA?sort=1
   

   参数说明
   scale 图像规格 格式: scale=宽_高 可以根据机型调整,或者置于属性文件中.
   mask  画图选项 c-标题 v-成交量 y-刻度
   ktype K线周期  10001-日线  10002-周线   10003-月线   10004-年线
		  20001-5分钟 20002-15分钟 20003-30分钟 20004-60分钟
   sort  排序  1-价格 2-涨幅 3-成交 4-振幅  (-1 -2 -3 )-反序

*/

package kbaohttpstock ;

import java.io.*;

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;


public class KbaoStock extends MIDlet implements CommandListener, HttpDataListener
{
	private Command do_cmd    = new Command("操作", Command.OK, 1);
	private Command ok_cmd    = new Command("确认", Command.OK, 1);
	private Command enter_cmd = new Command("进入", Command.ITEM, 1);
	private Command fresh_cmd = new Command("刷新", Command.OK, 1);

	private Command exit_cmd  = new Command("退出", Command.EXIT, 2);
	private Command cancel_cmd= new Command("放弃", Command.CANCEL, 2);
	private Command back_cmd  = new Command("返回", Command.BACK, 2);

	// 正好证券 Web 服务器 并附加 j2me 扩展服务
	private String host="http://www.kbao.com:1689/j2me"; // 中国K报
	
	private String mask ;
	private String scale ;
	private String scale_bidsp ;

	private String stocklist_rms ="KbaoStockList";
	private List   stocklist ;
	private List   opslist ;
	private List   marklist ;
	private List   sortypes ;
	private List   toplist ;
	private List   topslist ;

	private Form   editform	;
	private TextField editext ;
	private Form   dataform ;
	private String url ;

	private Form   hintform ;
	private Displayable hintback ;

	private Display display;

	private Image  icon_box ;
	private Image  icon_stk ;
	private Image  icon_stka;
	private Image  icon_bids ;
	private Image  icon_mins ;
	private Image  icon_kday ;
	private Image  icon_add ;
	private Image  icon_del ;
	private Image  icon_dela;
	private Image  icon_chg ;
	private Image  icon_2fst ;
	private Image  icon_2lst ;

	String top_market[]={ 
				"tfa","指数期货", 	
				"twa","上市股票", 	
				"twb","上柜股票", 	
				"twc","债券凭证", 	
				"twf","特别类股", 	
				"twx","其它类股", 	

			};
	String sort_types[]={"2","-2","4","3"};
	
	int width, height ;



	public KbaoStock() 
	{

		try 
		{
		icon_box  = Image.createImage( "/box.png" );
		icon_stk  = Image.createImage( "/stk.png" );
		icon_stka = Image.createImage( "/stk.png" );
		icon_add  = Image.createImage( "/add.png" );
		icon_bids = Image.createImage( "/bids.png" );
		icon_mins = Image.createImage( "/mins.png" );
		icon_kday = Image.createImage( "/kday.png" );
		icon_del  = Image.createImage( "/del.png" );
		icon_dela = Image.createImage( "/dela.png" );
		icon_chg  = Image.createImage( "/chg.png" );
		icon_2fst = Image.createImage( "/2fst.png" );
		icon_2lst = Image.createImage( "/2lst.png" );
		}
		catch( IOException e )
		{ 
			//System.out.println("没找到图像文件");	
		}

		display = Display.getDisplay(this);

		stocklist = new List( null, List.IMPLICIT );
		stocklist.addCommand( enter_cmd );
		stocklist.addCommand( exit_cmd );
		stocklist.setCommandListener( this );
		
		opslist = new List(null, List.IMPLICIT );
		opslist.append( "最新行情", icon_bids );
		opslist.append( "今日走势", icon_mins );
		opslist.append( "日 K  线", icon_kday );
		opslist.append( "周 K  线", icon_kday );
		opslist.append( "月 K  线", icon_kday );
		opslist.append( "年 K  线", icon_kday );
		opslist.append( "5 分钟线", icon_kday );
		opslist.append( "15分钟线", icon_kday );
		opslist.append( "30分钟线", icon_kday );
		opslist.append( "60分钟线", icon_kday );
		opslist.append( " ", null );
		opslist.append( "删除", icon_del );
		opslist.append( "修改", icon_chg );
		opslist.append( "移到最前", icon_2fst );
		opslist.append( "移到最后", icon_2lst );
		opslist.addCommand( do_cmd );
		opslist.addCommand( back_cmd );
		opslist.setCommandListener( this );

		editform = new Form(null);
		editext = new TextField( "输入代码", null, 20, 0 );
		editform.append( editext );
		editform.addCommand( ok_cmd );
		editform.addCommand( cancel_cmd );
		editform.setCommandListener( this );

		dataform = new Form( null );
		dataform.addCommand( fresh_cmd );
		dataform.addCommand( back_cmd );
		dataform.setCommandListener( this );

		marklist = new List( "市场分类", List.IMPLICIT );
		for( int i=0; i<6; i++ )
		marklist.append( top_market[i*2+1], icon_box );
		marklist.addCommand( enter_cmd );
		marklist.addCommand( back_cmd );
		marklist.setCommandListener( this );


		sortypes = new List( "排行榜", List.IMPLICIT );
		sortypes.append( "涨幅", icon_box );
		sortypes.append( "跌幅", icon_box );
		sortypes.append( "振幅", icon_box );
		sortypes.append( "成交", icon_box );
		sortypes.addCommand( enter_cmd );
		sortypes.addCommand( back_cmd );
		sortypes.setCommandListener( this );

 		toplist = new List( null, List.IMPLICIT );
		toplist.addCommand( do_cmd );
		toplist.addCommand( back_cmd );
		toplist.setCommandListener( this );

		topslist = new List(null, List.IMPLICIT );
		topslist.append( "最新行情", icon_bids );
		topslist.append( "今日走势", icon_mins );
		topslist.append( "日 K  线", icon_kday );
		topslist.append( "周 K  线", icon_kday );
		topslist.append( "月 K  线", icon_kday );
		topslist.append( "年 K  线", icon_kday );
		topslist.append( "5 分钟线", icon_kday );
		topslist.append( "15分钟线", icon_kday );
		topslist.append( "30分钟线", icon_kday );
		topslist.append( "60分钟线", icon_kday );
		topslist.append( " ", null );
		topslist.append( "增加到自选股", icon_add );
		topslist.addCommand( do_cmd );
		topslist.addCommand( back_cmd );
		topslist.setCommandListener( this );


		hintform = new Form(null);
		hintform.addCommand( back_cmd );
		hintform.setCommandListener( this );

		//scale ="scale=160_190"; // 画面  宽_高
		KbaoCanvas kc = new KbaoCanvas( );
		width = kc.getWidth( )-1;
		height = kc.getHeight( );
		if( height < 100 ) height = 100 ; // 上下可移动
		scale = "scale="+String.valueOf(width)+"_"+String.valueOf(height);
		scale_bidsp = "scale="+String.valueOf(width)+"_238" ;

		mask ="mask=v";
		if( height > 140 ) mask = mask+"c";
		if( width  > 100 ) mask = mask+"y";
		


  	}


	public void startApp() 
	{
		stocklist.append( "排 行 榜", icon_box );

		read_stocklist( );
		if( stocklist.size()==1 )
		{
			//System.out.println( "初始化列表");

			stocklist.append( "TFWTX99 指数现", icon_stk );
			stocklist.append( "TW1101 台泥", icon_stk );
		}

		stocklist.append( "增加", icon_add );
		stocklist.append( "全部删除", icon_dela );

		display.setCurrent( stocklist );
	}

	public void pauseApp() { }

	public void destroyApp(boolean unconditional) 
	{ 
		save_stocklist( );
	}

	private void read_stocklist( )
	{
		RecordStore rs ;

		try 
		{
			rs = RecordStore.openRecordStore( stocklist_rms, false ); 
		}
		catch( RecordStoreException e ) { return ; }
		
		try
		{
			int in = rs.getSize();
			for( int i=0; i<in; i++ )
			{
				byte[] b = rs.getRecord( i+1 );
				String s = new String( b );
				stocklist.append( s, icon_stk );
			}
		}
		catch( RecordStoreException e ){ }
		finally 
		{ 
			try 
			{
				rs.closeRecordStore() ;
			}
			catch( RecordStoreException e ){ }
		}
 
		//System.out.println( "数据库 正常开始");
	
	}

	private void save_stocklist( )
	{
		RecordStore rs ;

		try 
		{
			RecordStore.deleteRecordStore( stocklist_rms );
		}
		catch( RecordStoreException e ){ }
		
		int in = stocklist.size( );
		if( in <= 3 ) return ;

		try 
		{
			rs = RecordStore.openRecordStore( stocklist_rms, true ); 
		}
		catch( RecordStoreException e ) { return ; }

		try
		{
			for( int i=1; i<in-2; i++ )
			{
				String s = stocklist.getString( i );
				byte[] b = s.getBytes(  );
				rs.addRecord( b, 0, b.length )  ;
			}
		}
		catch( RecordStoreException e ){ }
		finally 
		{ 
			try 
			{
				rs.closeRecordStore() ;
			}
			catch( RecordStoreException e ){ }
		}

		//System.out.println( "数据库 正常结束");


	}

	public void commandAction(Command c, Displayable s) 
	{

		if( s == stocklist )
		{
			if ( c == exit_cmd ) 
			{
	    			destroyApp(false);
	    			notifyDestroyed();
				return ;
			} 

			if( c == enter_cmd || c == ((List)s).SELECT_COMMAND )
			{

				int ci = stocklist.getSelectedIndex( );
				if( ci == -1 ) return ;

				if( ci == 0 )
					display.setCurrent( marklist );
				else if( ci == stocklist.size( )-1 )
				{
					while( stocklist.size( ) > 3 )
					stocklist.delete( 1 ); 
				}
				else if( ci == stocklist.size( )-2 )
				{
					editext.setString("");
					display.setCurrent( editform );	
				}
				else
				{
					opslist.setTitle( stocklist.getString( ci ) );
					display.setCurrent( opslist );
				}
				return ;
			}

			return ;
		}

		if( s == opslist )
		{
			if( c == back_cmd )
			{	
				display.setCurrent( stocklist );
				return ;
			}

			if( c == do_cmd || c == ((List)s).SELECT_COMMAND )
			{
				do_func( );
				return ;
			}


			return ;
		}

		if( s == editform )
		{

			int ci = stocklist.getSelectedIndex( );

			if( c == cancel_cmd )
			{
				if( ci == stocklist.size( ) - 2 )
					display.setCurrent( stocklist );
				else
					display.setCurrent( opslist );
				return ;
			}

			if( c == ok_cmd )
			{
				String a = editext.getString( );

				if( ci == stocklist.size( ) - 2 )
				{
					stocklist.insert( ci, a, icon_stk );
					display.setCurrent( stocklist );
				}
				else
				{
					stocklist.set( ci, a, icon_stk );
					display.setCurrent( stocklist );
				}
				return ;
			}


			return ;
		}


		if( s == dataform )
		{
			if( c == back_cmd )
			{
				int ci = stocklist.getSelectedIndex( );
				if( ci == 0 )
				display.setCurrent( topslist );
				else
				display.setCurrent( opslist );
				return ;
			}

			if( c == fresh_cmd )
			{
				StringItem si = new StringItem( null, "正在刷新..." );
				dataform.insert( 0, si );

				HttpData t = new HttpData( url, this );
				t.tag = 0;
				t.start();
				
				return ;
			}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -