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

📄 page_kline.java

📁 一份java写的期货交易程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
// 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:   Page_KLine.java

package gnnt.MEBS.HQApplet;

import gnnt.MEBS.HQApplet.Indicator.IndicatorBase;
import gnnt.MEBS.hq.BillDataVO;
import gnnt.MEBS.hq.ProductDataVO;
import gnnt.util.service.HQVO.CMDBillVO;
import gnnt.util.service.HQVO.CMDMinVO;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.util.Vector;

// Referenced classes of package gnnt.MEBS.HQApplet:
//            Page_Main, MenuListener, HQApplet, Draw_KLine, 
//            Draw_MinLine, ProductData, SendThread, Packet_HttpRequest, 
//            HttpThread, Draw_Quote

public class Page_KLine extends Page_Main
{

    static int m_iCurKLineType = 0;
    int iProductType;
    Draw_KLine draw_KLine;
    Draw_MinLine draw_MinLine;
    Rectangle rcKLine;
    Menu menuKType;
    MenuItem menuKTypeK;
    MenuItem menuKTypeUSA;
    MenuItem menuKTypePoly;
    Menu menuIndicator;
    Menu menuCycle;
    MenuItem menuQuote;
    MenuItem menuMarket;
    MenuItem menuZoomIn;
    MenuItem menuZoomOut;
    MenuItem menuPrevStock;
    MenuItem menuPostStock;
    MenuItem menuMinLine;
    MenuItem menuBill;
    MenuItem menuCycleDay;
    MenuItem menuCycleWeek;
    MenuItem menuCycleMonth;
    MenuItem menuCycleMin5;
    MenuItem menuCycleMin15;
    MenuItem menuCycleMin30;
    MenuItem menuCycleMin60;

    public Page_KLine(Rectangle _rc, HQApplet applet)
    {
        super(_rc, applet);
        AskForDataOnce();
        m_applet.iCurrentPage = 2;
        draw_KLine = new Draw_KLine(this);
        draw_MinLine = new Draw_MinLine(applet, false);
        makeMenus();
        iProductType = m_applet.getProductType(m_applet.strCurrentCode);
    }

    void AskForDataOnTimer()
    {
        ProductData stock = m_applet.GetProductData(m_applet.strCurrentCode);
        java.util.Date time = null;
        if(stock != null && stock.realData != null)
            time = stock.realData.time;
        SendThread.AskForRealQuote(m_applet.strCurrentCode, time, m_applet.sendThread);
        CMDBillVO packet = new CMDBillVO();
        packet.type = 0;
        packet.code = m_applet.strCurrentCode;
        if(stock != null && stock.vBill != null && stock.vBill.size() > 0)
            packet.time = ((BillDataVO)stock.vBill.lastElement()).time;
        m_applet.sendThread.AskForData(packet);
    }

    void AskForDataOnce()
    {
        ProductData stock = m_applet.GetProductData(m_applet.strCurrentCode);
        java.util.Date time = null;
        if(stock != null && stock.realData != null)
            time = stock.realData.time;
        SendThread.AskForRealQuote(m_applet.strCurrentCode, time, m_applet.sendThread);
        AskForKLine();
        CMDMinVO packet1 = new CMDMinVO();
        packet1.code = m_applet.strCurrentCode;
        packet1.type = 0;
        packet1.time = 0;
        m_applet.sendThread.AskForData(packet1);
        CMDBillVO packet = new CMDBillVO();
        packet.type = 0;
        packet.code = m_applet.strCurrentCode;
        packet.time = 0;
        m_applet.sendThread.AskForData(packet);
    }

    void AskForKLine()
    {
        ProductData stock = m_applet.GetProductData(m_applet.strCurrentCode);
        if(stock != null)
            if(1 == m_applet.m_iKLineCycle || 2 == m_applet.m_iKLineCycle || 3 == m_applet.m_iKLineCycle)
            {
                if(stock.dayKLine != null)
                    return;
            } else
            if(stock.min5KLine != null)
                return;
        Packet_HttpRequest request = new Packet_HttpRequest();
        request.sCode = m_applet.strCurrentCode;
        if(1 == m_applet.m_iKLineCycle || 2 == m_applet.m_iKLineCycle || 3 == m_applet.m_iKLineCycle)
            request.type = 0;
        else
            request.type = 1;
        m_applet.httpThread.AskForData(request);
    }

    void Paint(Graphics g)
    {
        ProductData stock = m_applet.GetProductData(m_applet.strCurrentCode);
        g.setFont(new Font("楷体_GB2312", 1, 26));
        FontMetrics fm = g.getFontMetrics();
        int iQuoteH = fm.getHeight();
        g.setFont(new Font("宋体", 0, 16));
        fm = g.getFontMetrics();
        iQuoteH += 9 * fm.getHeight() + m_applet.iShowBuySellPrice * 2 * fm.getHeight();
        Rectangle rcQuote = new Rectangle((m_rc.x + m_rc.width) - 200, m_rc.y, 200, iQuoteH);
        if(rcQuote.height > m_rc.height)
            rcQuote.height = m_rc.height;
        Draw_Quote.Paint(g, rcQuote, stock, m_applet.strCurrentCode, m_applet.iShowBuySellPrice, m_applet);
        if(m_rc.height > iQuoteH + fm.getHeight() * 3)
        {
            Rectangle rcMinLine = new Rectangle((m_rc.x + m_rc.width) - 200, m_rc.y + iQuoteH, 200, (m_rc.height - iQuoteH) + 1);
            draw_MinLine.Paint(g, rcMinLine, stock);
        }
        rcKLine = new Rectangle(m_rc.x, m_rc.y, m_rc.width - 200, m_rc.height);
        draw_KLine.Paint(g, rcKLine, stock);
    }

    boolean KeyPressed(KeyEvent e)
    {
        int iKeyCode = e.getKeyCode();
        boolean bResult;
        switch(iKeyCode)
        {
        case 34: // '"'
            m_applet.ChangeStock(false, true);
            bResult = true;
            break;

        case 33: // '!'
            m_applet.ChangeStock(true, true);
            bResult = true;
            break;

        default:
            bResult = draw_KLine.KeyPressed(e);
            break;
        }
        return bResult;
    }

    boolean MouseLeftClicked(int x, int y)
    {
        if(rcKLine != null && rcKLine.contains(x, y) && draw_KLine != null)
            return draw_KLine.MouseLeftClicked(x, y);
        else
            return false;
    }

    boolean MouseDragged(int x, int y)
    {
        if(rcKLine != null && rcKLine.contains(x, y) && draw_KLine != null)
            return draw_KLine.MouseDragged(x, y);
        else
            return false;
    }

    void makeMenus()
    {
        menuKType = new Menu(m_applet.getShowString("LineType"));
        menuKTypeK = new MenuItem(m_applet.getShowString("KLine"));
        menuKTypeUSA = new MenuItem(m_applet.getShowString("USALine"));
        menuKTypePoly = new MenuItem(m_applet.getShowString("PolyLine"));
        menuIndicator = new Menu(m_applet.getShowString("Indicator"));
        menuCycle = new Menu(m_applet.getShowString("AnalysisCycle") + "  F8");
        menuQuote = new MenuItem(m_applet.getShowString("MultiQuote") + "  F2");
        menuMarket = new MenuItem(m_applet.getShowString("ClassedList") + "  F4");
        menuZoomIn = new MenuItem(m_applet.getShowString("ZooMIn"));
        menuZoomOut = new MenuItem(m_applet.getShowString("ZoomOut"));
        menuPrevStock = new MenuItem(m_applet.getShowString("PrevCommodity") + "  PageUp");
        menuPostStock = new MenuItem(m_applet.getShowString("NextCommodity") + "  PageDown");
        menuMinLine = new MenuItem(m_applet.getShowString("MinLine") + "  F5");
        menuBill = new MenuItem(m_applet.getShowString("TradeList") + "  F1");
        menuCycleDay = new MenuItem(m_applet.getShowString("DayLine"));
        menuCycleWeek = new MenuItem(m_applet.getShowString("WeekLine"));
        menuCycleMonth = new MenuItem(m_applet.getShowString("MonthLine"));
        menuCycleMin5 = new MenuItem(m_applet.getShowString("5MinLine"));
        menuCycleMin15 = new MenuItem(m_applet.getShowString("15MinLine"));
        menuCycleMin30 = new MenuItem(m_applet.getShowString("30MinLine"));
        menuCycleMin60 = new MenuItem(m_applet.getShowString("60MinLine"));
        int rows = IndicatorBase.INDICATOR_NAME.length;
        for(int i = 0; i < rows; i++)
        {
            MenuItem mi = new MenuItem();
            StringBuffer label = new StringBuffer();
            String strName = IndicatorBase.INDICATOR_NAME[i][0];
            String strFullName = m_applet.getShowString("T_" + IndicatorBase.INDICATOR_NAME[i][0]);
            label.append(strName);
            for(int len = strName.length(); len < 6; len++)
                label.append(" ");

            label.append(strFullName);
            mi.setLabel(label.toString());
            mi.setActionCommand("Indicator_" + strName);
            mi.addActionListener(this);
            menuIndicator.add(mi);
        }

        menuKTypeK.setActionCommand("KLine");
        menuKTypeK.addActionListener(this);
        menuKTypeUSA.setActionCommand("USA");
        menuKTypeUSA.addActionListener(this);
        menuKTypePoly.setActionCommand("Poly");
        menuKTypePoly.addActionListener(this);
        menuKType.add(menuKTypeK);
        menuKType.add(menuKTypeUSA);
        menuKType.add(menuKTypePoly);
        menuQuote.setActionCommand("cmd_quote");
        menuQuote.addActionListener(this);
        menuMarket.setActionCommand("cmd_market");
        menuMarket.addActionListener(this);
        menuZoomIn.setActionCommand("zoomin");
        menuZoomIn.addActionListener(this);
        menuZoomOut.setActionCommand("zoomout");
        menuZoomOut.addActionListener(this);
        menuPrevStock.setActionCommand("prevstock");
        menuPrevStock.addActionListener(this);
        menuPostStock.setActionCommand("poststock");
        menuPostStock.addActionListener(this);
        menuCycle.setActionCommand("cycle");
        menuCycleDay.setActionCommand("day");
        menuCycleDay.addActionListener(this);
        menuCycleWeek.setActionCommand("week");
        menuCycleWeek.addActionListener(this);
        menuCycleMonth.setActionCommand("month");
        menuCycleMonth.addActionListener(this);
        menuCycleMin5.setActionCommand("min5");
        menuCycleMin5.addActionListener(this);
        menuCycleMin15.setActionCommand("min15");
        menuCycleMin15.addActionListener(this);
        menuCycleMin30.setActionCommand("min30");
        menuCycleMin30.addActionListener(this);
        menuCycleMin60.setActionCommand("min60");
        menuCycleMin60.addActionListener(this);
        menuMinLine.setActionCommand("minline");
        menuMinLine.addActionListener(this);
        menuBill.setActionCommand("bill");
        menuBill.addActionListener(this);
        menuCycle.add(menuCycleDay);
        menuCycle.add(menuCycleWeek);
        menuCycle.add(menuCycleMonth);
        menuCycle.add(menuCycleMin5);
        menuCycle.add(menuCycleMin15);
        menuCycle.add(menuCycleMin30);
        menuCycle.add(menuCycleMin60);
    }

    void processMenuEvent(PopupMenu popupMenu, int x, int y)
    {
        popupMenu.removeAll();
        popupMenu.add(menuKType);
        popupMenu.add(menuIndicator);
        popupMenu.add(menuCycle);
        popupMenu.addSeparator();
        if(iProductType != 4)

⌨️ 快捷键说明

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