// NMI's Java Code Viewer 6.0a
// www.trinnion.com/javacodeviewer
// Registered to Evaluation Copy
// Generated PGFZKD AyTB 14 2007 15:44:19
//source File Name: Draw_KLine.java
package gnnt.MEBS.HQApplet;
import gnnt.MEBS.HQApplet.Indicator.ASI;
import gnnt.MEBS.HQApplet.Indicator.BIAS;
import gnnt.MEBS.HQApplet.Indicator.BOLL;
import gnnt.MEBS.HQApplet.Indicator.BRAR;
import gnnt.MEBS.HQApplet.Indicator.CCI;
import gnnt.MEBS.HQApplet.Indicator.CR;
import gnnt.MEBS.HQApplet.Indicator.DMA;
import gnnt.MEBS.HQApplet.Indicator.DMI;
import gnnt.MEBS.HQApplet.Indicator.EMV;
import gnnt.MEBS.HQApplet.Indicator.EXPMA;
import gnnt.MEBS.HQApplet.Indicator.IndicatorBase;
import gnnt.MEBS.HQApplet.Indicator.IndicatorPos;
import gnnt.MEBS.HQApplet.Indicator.KDJ;
import gnnt.MEBS.HQApplet.Indicator.MA;
import gnnt.MEBS.HQApplet.Indicator.MACD;
import gnnt.MEBS.HQApplet.Indicator.MIKE;
import gnnt.MEBS.HQApplet.Indicator.OBV;
import gnnt.MEBS.HQApplet.Indicator.PSY;
import gnnt.MEBS.HQApplet.Indicator.ROC;
import gnnt.MEBS.HQApplet.Indicator.RSI;
import gnnt.MEBS.HQApplet.Indicator.Reserve;
import gnnt.MEBS.HQApplet.Indicator.SAR;
import gnnt.MEBS.HQApplet.Indicator.TRIX;
import gnnt.MEBS.HQApplet.Indicator.VOL;
import gnnt.MEBS.HQApplet.Indicator.VR;
import gnnt.MEBS.HQApplet.Indicator.WVAD;
import gnnt.MEBS.HQApplet.Indicator.W_R;
import gnnt.MEBS.hq.*;
import java.awt.*;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.util.*;
// Referenced classes of package gnnt.MEBS.HQApplet:
// MenuListener, HQApplet, Page_KLine, ProductData,
// RHColor, KLineData, CodeTable, Common
public class Draw_KLine {
private static int cache_m_VirtualRatio = 15;
Page_KLine parent;
static final int CYCLE_DAY = 1;
static final int CYCLE_WEEK = 2;
static final int CYCLE_MONTH = 3;
static final int CYCLE_MIN5 = 4;
static final int CYCLE_MIN15 = 5;
static final int CYCLE_MIN30 = 6;
static final int CYCLE_MIN60 = 7;
private ProductData m_product;
KLineData m_kData[];
Rectangle m_rcPane[];
IndicatorBase m_indicator[];
IndicatorPos m_pos;
private int m_iPos;
private Rectangle m_rcLabel;
int m_iPrecision;
public Draw_KLine(Page_KLine _parent) {
m_rcPane = new Rectangle[3];
m_indicator = new IndicatorBase[3];
m_pos = new IndicatorPos();
m_iPos = -1;
m_pos.m_VirtualRatio = cache_m_VirtualRatio;
parent = _parent;
int iPrecision = ((MenuListener) (parent)).m_applet.GetPrecision(((MenuListener) (parent)).m_applet.strCurrentCode);
if(((MenuListener) (parent)).m_applet.isIndex(((MenuListener) (parent)).m_applet.strCurrentCode) && ((MenuListener) (parent)).m_applet.m_bShowIndexKLine == 0)
m_indicator[0] = new MA(m_pos, 2, iPrecision);
else
m_indicator[0] = new MA(m_pos, Page_KLine.m_iCurKLineType, iPrecision);
m_indicator[1] = new VOL(m_pos, 0);
CreateIndicator();
}
void Paint(Graphics g, Rectangle rc, ProductData product) {
m_product = product;
if(product != null)
m_iPrecision = ((MenuListener) (parent)).m_applet.GetPrecision(m_product.sCode);
MakeCycleData();
GetScreen(g, rc);
DrawCycle(g);
if(m_rcPane[0].width < 0)
return;
DrawTimeCoordinate(g);
for(int i = 0; i < 3; i++)
m_indicator[i].Paint(g, m_rcPane[i], m_kData);
((MenuListener) (parent)).m_applet.EndPaint();
DrawCursor(-1);
DrawLabel();
}
private void GetScreen(Graphics g, Rectangle rc) {
g.setFont(new Font("\u5B8B\u4F53", 0, 14));
FontMetrics fm = g.getFontMetrics();
int iHeight = fm.getHeight();
int x = rc.x + 4 * iHeight;
int width = rc.width - 4 * iHeight - 2;
m_rcPane[0] = new Rectangle(x, rc.y, width, (rc.height - iHeight) / 2);
m_rcPane[1] = new Rectangle(x, rc.y + m_rcPane[0].height, width, (rc.height - iHeight) / 4);
m_rcPane[2] = new Rectangle(x, m_rcPane[1].y + m_rcPane[1].height, width, (rc.height - iHeight) / 4);
g.setColor(HQApplet.rhColor.clGrid);
g.drawRect(m_rcPane[0].x, m_rcPane[0].y, width, rc.height - iHeight);
g.drawLine(m_rcPane[1].x, m_rcPane[1].y, m_rcPane[1].x + width, m_rcPane[1].y);
g.drawLine(m_rcPane[2].x, m_rcPane[2].y, m_rcPane[1].x + width, m_rcPane[2].y);
int iIndex = -1;
if(m_iPos != -1)
iIndex = m_pos.m_Begin + m_iPos;
if(m_kData != null)
m_pos.GetScreen(m_rcPane[0].width, m_kData.length);
else
m_pos.GetScreen(m_rcPane[0].width, 0);
if(m_iPos != -1)
if(iIndex >= m_pos.m_Begin && iIndex <= m_pos.m_End)
m_iPos = iIndex - m_pos.m_Begin;
else
m_iPos = -1;
if(((MenuListener) (parent)).m_applet.m_iKLineCycle >= 4 && ((MenuListener) (parent)).m_applet.m_iKLineCycle <= 7)
m_rcLabel = new Rectangle(rc.x + 1, rc.y + iHeight, x - 1, iHeight * 19);
else
m_rcLabel = new Rectangle(rc.x + 1, rc.y + iHeight, x - 1, iHeight * 18);
}
private void DrawTimeCoordinate(Graphics g) {
if(m_kData == null || m_kData.length == 0)
return;
g.setFont(new Font("\u5B8B\u4F53", 0, 14));
FontMetrics fm = g.getFontMetrics();
int iHeight = fm.getHeight();
Rectangle rc = new Rectangle(m_rcPane[2].x, m_rcPane[2].y + m_rcPane[2].height, m_rcPane[2].width, iHeight);
int iStringWidth;
switch(((MenuListener) (parent)).m_applet.m_iKLineCycle) {
case 3: // '\003'
iStringWidth = fm.stringWidth("2004-10");
break;
case 1: // '\001'
case 2: // '\002'
iStringWidth = fm.stringWidth("2004-10-10");
break;
default:
iStringWidth = fm.stringWidth("10-30 09:40");
break;
}
int step = (int)(((double)iStringWidth * 1.5D) / (double)m_pos.m_Ratio) + 1;
int scrcount = (m_pos.m_End - m_pos.m_Begin) + 1;
int count = (m_pos.m_End - m_pos.m_Begin) / step;
int y = rc.y + fm.getAscent();
int x = (int)((float)rc.x + m_pos.m_Ratio / 2.0F);
g.setColor(HQApplet.rhColor.clGrid);
g.drawLine(x, rc.y, x, rc.y + 5);
String str = TimeToString(((MenuListener) (parent)).m_applet.m_iKLineCycle, m_kData[m_pos.m_Begin].date);
g.setColor(HQApplet.rhColor.clNumber);
g.drawString(str, x, y);
for(int i = 1; i < count; i++) {
x = (int)((float)rc.x + (float)(i * step) * m_pos.m_Ratio + m_pos.m_Ratio / 2.0F);
g.setColor(HQApplet.rhColor.clGrid);
g.drawLine(x, rc.y, x, rc.y + 5);
str = TimeToString(((MenuListener) (parent)).m_applet.m_iKLineCycle, m_kData[i * step + m_pos.m_Begin].date);
x -= iStringWidth / 2;
g.setColor(HQApplet.rhColor.clNumber);
g.drawString(str, x, y);
}
if(count > 0) {
x = rc.x + (int)((float)scrcount * m_pos.m_Ratio - m_pos.m_Ratio / 2.0F);
g.setColor(HQApplet.rhColor.clGrid);
g.drawLine(x, rc.y, x, rc.y + 5);
str = TimeToString(((MenuListener) (parent)).m_applet.m_iKLineCycle, m_kData[m_pos.m_End].date);
if(count > 1 || x + iStringWidth > rc.x + rc.width)
x -= iStringWidth;
g.setColor(HQApplet.rhColor.clNumber);
g.drawString(str, x, y);
}
}
private String TimeToString(int iCycle, long date) {
String str;
switch(iCycle) {
case 1: // '\001'
case 2: // '\002'
str = String.v
没有合适的资源?快使用搜索试试~ 我知道了~
java写的股票技术分析;软件,包括分时图,k线图,技术分析指标
共294个文件
class:186个
java:93个
properties:6个
4星 · 超过85%的资源 需积分: 37 116 下载量 119 浏览量
2015-08-11
10:22:03
上传
评论 5
收藏 495KB RAR 举报
温馨提示
java写的股票技术分析;软件,包括分时图,k线图,技术分析指标
资源推荐
资源详情
资源评论
收起资源包目录
java写的股票技术分析;软件,包括分时图,k线图,技术分析指标 (294个子文件)
java.policy.applet 141B
Page_MultiQuote.class 25KB
Page_MultiQuote.class 25KB
Draw_KLine.class 24KB
Draw_KLine.class 23KB
HQApplet.class 17KB
HQApplet.class 17KB
Draw_MinLine.class 16KB
Draw_MinLine.class 16KB
Page_MarketStatus.class 13KB
Page_MarketStatus.class 13KB
Page_KLine.class 13KB
Page_KLine.class 13KB
ReceiveThread.class 11KB
Page_Bill.class 11KB
Page_Bill.class 11KB
ReceiveThread.class 11KB
Page_History.class 10KB
Page_History.class 9KB
Draw_Quote.class 9KB
Draw_Quote.class 9KB
HttpThread.class 9KB
HttpThread.class 9KB
IndicatorBase.class 8KB
IndicatorBase.class 8KB
Page_MinLine.class 8KB
InputDialog.class 8KB
Page_MinLine.class 7KB
InputDialog.class 7KB
SendThread.class 6KB
SendThread.class 6KB
Common.class 6KB
RequestUtil.class 6KB
Common.class 6KB
RequestUtil.class 6KB
Page_Bottom.class 5KB
Page_Bottom.class 5KB
KLine.class 5KB
KLine.class 5KB
SAR.class 5KB
SAR.class 5KB
RHColor.class 4KB
RHColor.class 4KB
ProductDataVO.class 4KB
ProductDataVO.class 4KB
MACD.class 4KB
MACD.class 4KB
Draw_LastBill.class 4KB
Draw_LastBill.class 4KB
Page_Main.class 4KB
Page_Main.class 4KB
DMI.class 4KB
Reserve.class 4KB
VOL.class 4KB
Reserve.class 4KB
VOL.class 4KB
DMI.class 4KB
BRAR.class 3KB
MIKE.class 3KB
BRAR.class 3KB
MIKE.class 3KB
AboutDialog.class 3KB
CR.class 3KB
CR.class 3KB
AboutDialog.class 3KB
VR.class 3KB
VR.class 3KB
KDJ.class 3KB
TradeTimeVO.class 3KB
KDJ.class 3KB
TradeTimeVO.class 3KB
BOLL.class 3KB
BOLL.class 3KB
W_R.class 3KB
W_R.class 3KB
RSI.class 3KB
RSI.class 3KB
EMV.class 3KB
EMV.class 3KB
TRIX.class 3KB
TRIX.class 3KB
BIAS.class 3KB
BIAS.class 3KB
WVAD.class 3KB
WVAD.class 3KB
DMA.class 3KB
DMA.class 3KB
ROC.class 2KB
ROC.class 2KB
PSY.class 2KB
CCI.class 2KB
PSY.class 2KB
CCI.class 2KB
ASI.class 2KB
ASI.class 2KB
EXPMA.class 2KB
EXPMA.class 2KB
OBV.class 2KB
OBV.class 2KB
CMDQuoteVO.class 2KB
共 294 条
- 1
- 2
- 3
haiking5253
- 粉丝: 2
- 资源: 41
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页