📄 draw_kline.java
字号:
data.balancePrice = (float)(data.totalMoney / (double)data.totalAmount);
vector.addElement(data);
}
data = new KLineData();
data.closePrice = m_kData[i].closePrice;
data.highPrice = m_kData[i].highPrice;
data.lowPrice = m_kData[i].lowPrice;
data.openPrice = m_kData[i].openPrice;
data.balancePrice = m_kData[i].balancePrice;
data.totalAmount = m_kData[i].totalAmount;
data.totalMoney = m_kData[i].totalMoney;
data.reserveCount = m_kData[i].reserveCount;
data.date = date;
curDate = date;
} else
{
if(m_kData[i].highPrice > data.highPrice)
data.highPrice = m_kData[i].highPrice;
if(m_kData[i].lowPrice < data.lowPrice)
data.lowPrice = m_kData[i].lowPrice;
data.closePrice = m_kData[i].closePrice;
data.balancePrice = m_kData[i].balancePrice;
data.totalAmount += m_kData[i].totalAmount;
data.totalMoney += m_kData[i].totalMoney;
data.reserveCount = m_kData[i].reserveCount;
}
}
if(data != null)
{
if(data.totalAmount > 0L)
if(codeTable != null)
data.balancePrice = (float)(data.totalMoney / (double)data.totalAmount / (double)codeTable.fUnit);
else
data.balancePrice = (float)(data.totalMoney / (double)data.totalAmount);
vector.addElement(data);
}
m_kData = new KLineData[vector.size()];
for(int i = 0; i < vector.size(); i++)
m_kData[i] = (KLineData)vector.elementAt(i);
}
private long GetCurrentDateTime(long date, int iMin)
{
int iIndex = Common.GetTimeIndexFromTime((int)(date % 10000L), ((MenuListener) (parent)).m_applet.m_timeRange);
iIndex = ((iIndex + 1) / iMin + 1) * iMin - 1;
if(iIndex >= TradeTimeVO.GetTotalMinute(((MenuListener) (parent)).m_applet.m_timeRange))
iIndex = TradeTimeVO.GetTotalMinute(((MenuListener) (parent)).m_applet.m_timeRange) - 1;
int iTime = Common.GetTimeFromTimeIndex(iIndex, ((MenuListener) (parent)).m_applet.m_timeRange);
return (date / 10000L) * 10000L + (long)iTime;
}
boolean KeyPressed(KeyEvent e)
{
int iKeyCode = e.getKeyCode();
boolean bResult = false;
switch(iKeyCode)
{
default:
break;
case 119: // 'w'
ChangeCycle();
bResult = true;
break;
case 38: // '&'
bResult = ChangeRatio(true);
if(!bResult)
break;
if(!ChangeRatio(true))
parent.setMenuEnable("zoomin", false);
else
ChangeRatio(false);
parent.setMenuEnable("zoomout", true);
break;
case 40: // '('
bResult = ChangeRatio(false);
if(!bResult)
break;
if(!ChangeRatio(false))
parent.setMenuEnable("zoomout", false);
else
ChangeRatio(true);
parent.setMenuEnable("zoomin", true);
break;
case 37: // '%'
if(e.isControlDown())
{
m_pos.m_EndPos += m_pos.m_ScreenCount;
m_iPos -= m_pos.m_ScreenCount;
bResult = true;
break;
}
if(e.isShiftDown())
{
if(m_pos.m_Begin > 0)
{
m_pos.m_EndPos++;
m_iPos--;
bResult = true;
}
} else
{
bResult = ChangePos(true);
}
break;
case 39: // '\''
if(e.isControlDown())
{
m_pos.m_EndPos -= m_pos.m_ScreenCount;
m_iPos += m_pos.m_ScreenCount;
bResult = true;
break;
}
if(e.isShiftDown())
{
if(m_pos.m_Begin < m_pos.m_MaxPos)
{
m_pos.m_EndPos--;
m_iPos++;
bResult = true;
}
} else
{
bResult = ChangePos(false);
}
break;
case 27: // '\033'
if(m_iPos != -1)
{
DrawCursor(-1);
((MenuListener) (parent)).m_applet.Repaint(m_rcLabel);
m_iPos = -1;
bResult = true;
}
break;
case 36: // '$'
ChangeIndicator(false);
bResult = true;
break;
case 35: // '#'
ChangeIndicator(true);
bResult = true;
break;
}
return bResult;
}
void ChangeKLineType(int iType)
{
int iPrecision = ((MenuListener) (parent)).m_applet.GetPrecision(((MenuListener) (parent)).m_applet.strCurrentCode);
m_indicator[0] = new MA(m_pos, iType, iPrecision);
((MenuListener) (parent)).m_applet.repaint();
}
void ChangeCycle()
{
if(((MenuListener) (parent)).m_applet.m_iKLineCycle >= 7)
((MenuListener) (parent)).m_applet.m_iKLineCycle = 1;
else
((MenuListener) (parent)).m_applet.m_iKLineCycle++;
m_iPos = -1;
m_pos.m_EndPos = 0;
m_pos.m_MaxPos = 0;
m_pos.m_End = 0;
m_pos.m_Begin = 0;
parent.AskForKLine();
}
boolean ChangeRatio(boolean b)
{
if(b)
{
if(m_pos.m_VirtualRatio >= 60)
return false;
m_pos.m_VirtualRatio = m_pos.m_VirtualRatio + 1;
} else
{
if(m_pos.m_VirtualRatio <= 2)
return false;
m_pos.m_VirtualRatio = m_pos.m_VirtualRatio - 1;
}
cache_m_VirtualRatio = m_pos.m_VirtualRatio;
return true;
}
private void DrawCycle(Graphics g)
{
String str = "";
switch(((MenuListener) (parent)).m_applet.m_iKLineCycle)
{
case 1: // '\001'
str = ((MenuListener) (parent)).m_applet.getShowString("DayLine");
break;
case 2: // '\002'
str = ((MenuListener) (parent)).m_applet.getShowString("WeekLine");
break;
case 3: // '\003'
str = ((MenuListener) (parent)).m_applet.getShowString("MonthLine");
break;
case 4: // '\004'
str = ((MenuListener) (parent)).m_applet.getShowString("5MinLine");
break;
case 5: // '\005'
str = ((MenuListener) (parent)).m_applet.getShowString("15MinLine");
break;
case 6: // '\006'
str = ((MenuListener) (parent)).m_applet.getShowString("30MinLine");
break;
case 7: // '\007'
str = ((MenuListener) (parent)).m_applet.getShowString("60MinLine");
break;
}
g.setFont(new Font("宋体", 0, 14));
FontMetrics fm = g.getFontMetrics();
int x = m_rcPane[0].x - fm.stringWidth(str) - 1;
int y = m_rcPane[0].y + fm.getAscent();
g.setColor(HQApplet.rhColor.clItem);
g.drawString(str, x, y);
}
private boolean ChangePos(boolean bIsLeft)
{
boolean bNeedRepaint = false;
if(m_kData.length == 0)
return bNeedRepaint;
if(m_iPos == -1)
{
if(bIsLeft)
DrawCursor(m_pos.m_End - m_pos.m_Begin);
else
DrawCursor(0);
DrawLabel();
} else
if(bIsLeft)
{
if(m_iPos == 0)
{
if(m_pos.m_Begin > 0)
{
m_pos.m_EndPos++;
bNeedRepaint = true;
} else
{
return false;
}
} else
{
DrawCursor(m_iPos - 1);
DrawLabel();
}
} else
if(m_iPos == m_pos.m_End - m_pos.m_Begin)
{
if(m_pos.m_Begin < m_pos.m_MaxPos)
{
bNeedRepaint = true;
m_pos.m_EndPos--;
} else
{
return false;
}
} else
{
DrawCursor(m_iPos + 1);
DrawLabel();
}
return bNeedRepaint;
}
boolean MouseLeftClicked(int x, int y)
{
if(m_rcPane[0] == null)
return false;
if(x < m_rcPane[0].x || x > m_rcPane[0].x + m_rcPane[0].width)
return false;
int iNewPos = (int)((float)(x - m_rcPane[0].x) / m_pos.m_Ratio);
if(iNewPos != m_iPos && iNewPos >= 0 && iNewPos <= m_pos.m_End - m_pos.m_Begin)
{
DrawCursor(iNewPos);
DrawLabel();
}
return false;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -