亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? draw_kline.java

?? 一份java寫的期貨交易程序
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi 
// 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("宋體", 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("宋體", 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.valueOf(date);
            if(str.length() >= 8)
                str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8);
            break;

        case 3: // '\003'
            str = String.valueOf(date / 100L);
            if(str.length() >= 6)
                str = str.substring(0, 4) + "-" + str.substring(4, 6);
            break;

        default:
            str = String.valueOf(date);
            if(str.length() >= 12)
            {
                str = str.substring(4);
                str = str.substring(0, 2) + "-" + str.substring(2, 4) + " " + str.substring(4, 6) + ":" + str.substring(6, 8);
            }
            break;
        }
        return str;
    }

    private void MakeCycleData()
    {
        if(m_product == null)
            return;
        if(1 == ((MenuListener) (parent)).m_applet.m_iKLineCycle || 2 == ((MenuListener) (parent)).m_applet.m_iKLineCycle || 3 == ((MenuListener) (parent)).m_applet.m_iKLineCycle)
            MakeTodayDayLine();
        else
            MakeToday5MinLine();
        if(m_kData == null)
            return;
        switch(((MenuListener) (parent)).m_applet.m_iKLineCycle)
        {
        case 2: // '\002'
            MakeWeek();
            break;

        case 3: // '\003'
            MakeMonth();
            break;

        case 5: // '\005'
            MakeMinCycle(15);
            break;

        case 6: // '\006'
            MakeMinCycle(30);
            break;

        case 7: // '\007'
            MakeMinCycle(60);
            break;
        }
    }

    private void MakeTodayDayLine()
    {
        if(m_product.realData == null || m_product.realData.curPrice < 0.001F)
        {
            m_kData = m_product.dayKLine;
            return;
        }
        int iNum;
        if(m_product.dayKLine == null)
            iNum = 0;
        else
            iNum = m_product.dayKLine.length;
        if(iNum > 0 && m_product.dayKLine[iNum - 1].date > (long)((MenuListener) (parent)).m_applet.m_iDate)
        {
            m_kData = m_product.dayKLine;
            return;
        }
        if(iNum > 0 && m_product.dayKLine[iNum - 1].date == (long)((MenuListener) (parent)).m_applet.m_iDate)
        {
            if(m_product.realData.totalAmount <= 0L)
            {
                m_kData = m_product.dayKLine;
                return;
            }
            iNum--;
        }
        m_kData = new KLineData[iNum + 1];
        for(int i = 0; i < iNum; i++)
            m_kData[i] = m_product.dayKLine[i];

        m_kData[iNum] = new KLineData();
        m_kData[iNum].date = ((MenuListener) (parent)).m_applet.m_iDate;
        m_kData[iNum].openPrice = m_product.realData.openPrice;
        m_kData[iNum].highPrice = m_product.realData.highPrice;
        m_kData[iNum].lowPrice = m_product.realData.lowPrice;
        m_kData[iNum].closePrice = m_product.realData.curPrice;
        m_kData[iNum].balancePrice = m_product.realData.balancePrice;
        m_kData[iNum].totalAmount = m_product.realData.totalAmount;
        m_kData[iNum].totalMoney = m_product.realData.totalMoney;
        m_kData[iNum].reserveCount = m_product.realData.reserveCount;
    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www.66久久| 韩国欧美国产1区| 欧美日韩情趣电影| 亚洲图片欧美色图| 欧美欧美欧美欧美| 美脚の诱脚舐め脚责91| 精品国产乱码久久久久久影片| 紧缚奴在线一区二区三区| www精品美女久久久tv| 风流少妇一区二区| 一区二区三区91| 欧美日韩成人综合在线一区二区 | 色噜噜狠狠一区二区三区果冻| 国产精品护士白丝一区av| 91视频观看视频| 日韩精品亚洲专区| 久久久精品国产99久久精品芒果 | 精品一区二区三区在线播放视频| 精品日本一线二线三线不卡| 成人高清视频在线观看| 亚洲综合小说图片| 欧美大肚乱孕交hd孕妇| 成人精品国产免费网站| 亚洲一二三四久久| 337p粉嫩大胆色噜噜噜噜亚洲| 成人免费福利片| 亚洲成人一二三| 久久亚洲精品国产精品紫薇| 91免费看视频| 久久成人综合网| 有码一区二区三区| 精品久久久久一区| 一本大道av一区二区在线播放| 免费成人你懂的| 亚洲欧美aⅴ...| 精品乱人伦小说| 国产精品丝袜在线| 欧美人成免费网站| 不卡的av电影在线观看| 蜜臀a∨国产成人精品| 亚洲免费av高清| 久久久久国色av免费看影院| 欧美日韩视频专区在线播放| 成人高清视频免费观看| 美女视频免费一区| 亚洲综合激情网| 国产精品青草综合久久久久99| 日韩一区二区视频在线观看| 一本大道久久a久久综合| 国产成人免费视频网站高清观看视频| 亚洲成人tv网| 亚洲精品国产精华液| 中文字幕av资源一区| 日韩欧美一区二区不卡| 欧美日韩在线直播| 91丨九色丨蝌蚪富婆spa| 国产69精品一区二区亚洲孕妇| 美日韩一区二区三区| 五月激情六月综合| 亚洲一区二区三区三| 亚洲欧美日韩一区| 国产精品视频第一区| 精品国产乱码久久久久久影片| 678五月天丁香亚洲综合网| 色综合久久久久综合99| 北条麻妃一区二区三区| 粉嫩av一区二区三区在线播放| 狠狠色丁香婷婷综合久久片| 日本sm残虐另类| 日本不卡不码高清免费观看| 亚洲成a人在线观看| 亚洲va在线va天堂| 亚洲 欧美综合在线网络| 亚洲国产乱码最新视频 | 天天综合天天做天天综合| 亚洲主播在线播放| 亚洲一区二区在线播放相泽| 亚洲午夜在线观看视频在线| 亚洲一区二区三区爽爽爽爽爽| 亚洲在线观看免费视频| 亚洲图片一区二区| 爽好多水快深点欧美视频| 丝袜诱惑亚洲看片| 久久精品国产99| 国产二区国产一区在线观看| 国产黄色精品网站| 成人av电影在线观看| 91污在线观看| 欧美日韩久久一区| 91精品国模一区二区三区| 日韩欧美在线不卡| 久久久不卡网国产精品二区| 国产亚洲欧美在线| 亚洲欧洲韩国日本视频| 亚洲激情男女视频| 日韩成人精品视频| 国产风韵犹存在线视精品| 白白色 亚洲乱淫| 在线观看亚洲一区| 日韩一区二区三区观看| 久久综合九色综合97婷婷| 欧美国产一区视频在线观看| 亚洲自拍偷拍欧美| 麻豆成人av在线| 成人va在线观看| 欧美精品在线视频| 久久久久久一级片| 亚洲精品国产无套在线观| 日本va欧美va欧美va精品| 国产成人精品亚洲午夜麻豆| 色婷婷久久久亚洲一区二区三区 | 国产精品亚洲专一区二区三区 | 色94色欧美sute亚洲线路一ni| 欧美日韩一本到| 国产午夜亚洲精品午夜鲁丝片| 中文字幕一区二区三区乱码在线 | 亚洲免费在线视频| 免费人成黄页网站在线一区二区| 国产精品123| 欧美日韩国产一级片| 国产日韩精品一区二区浪潮av| 亚洲黄色免费网站| 精品亚洲aⅴ乱码一区二区三区| 成人看片黄a免费看在线| 欧美一区二区在线免费观看| 久久婷婷一区二区三区| 亚洲精品国产精品乱码不99| 韩国v欧美v亚洲v日本v| 色老汉一区二区三区| 精品三级在线观看| 亚洲一二三四在线| eeuss鲁一区二区三区| 日韩午夜av一区| 亚洲成人高清在线| 丁香另类激情小说| 精品久久久久香蕉网| 一区二区国产盗摄色噜噜| 国产99一区视频免费| 日韩欧美一区二区三区在线| 一区二区不卡在线播放| 成人理论电影网| 亚洲精品在线免费观看视频| 天堂成人国产精品一区| 色呦呦国产精品| 国产精品看片你懂得| 久88久久88久久久| 91麻豆精品国产| 性久久久久久久| 欧美主播一区二区三区| 成人欧美一区二区三区1314| 国产精品一线二线三线| 精品久久一二三区| 蜜桃精品视频在线| 91精品国产综合久久蜜臀| 伊人色综合久久天天| aaa亚洲精品| 中文字幕中文乱码欧美一区二区 | 在线观看视频91| 成人欧美一区二区三区| 粉嫩av一区二区三区在线播放| 国产亚洲成av人在线观看导航| 青青草国产精品97视觉盛宴 | 97精品电影院| 亚洲乱码日产精品bd| 色综合一个色综合亚洲| 亚洲丝袜美腿综合| 色哟哟国产精品| 亚洲最大成人网4388xx| 色婷婷av一区二区三区软件| 亚洲另类中文字| 在线看一区二区| 亚洲午夜精品17c| 欧美日韩不卡一区二区| 日本欧美一区二区三区乱码| 日韩精品一区二区三区swag| 久久www免费人成看片高清| 精品日韩在线观看| 国产久卡久卡久卡久卡视频精品| 久久精品免视看| av日韩在线网站| 亚洲国产成人av好男人在线观看| 精品视频123区在线观看| 热久久一区二区| 久久蜜臀中文字幕| a级精品国产片在线观看| 亚洲激情中文1区| 日韩一区二区在线看| 国产在线精品国自产拍免费| 国产日韩欧美高清在线| 日本久久精品电影| 日本不卡高清视频| 中文在线免费一区三区高中清不卡| 成人av免费在线播放| 亚洲成人av一区二区| 精品粉嫩aⅴ一区二区三区四区| 国产乱码精品一品二品| 亚洲综合色噜噜狠狠| 日韩亚洲欧美在线| 处破女av一区二区| 婷婷夜色潮精品综合在线|