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

📄 page_multiquote.java

📁 java 写的股票技术分析;软件
💻 JAVA
📖 第 1 页 / 共 3 页
字号:

    private void paintPromptMessage(Graphics g) {
        String prompt = "\u8BF7\u7528\u6CE8\u518C\u8D26\u6237\u767B\u5F55\u540E\u5728\u9875\u9762\u4E2D\u8BBE\u5B9A\u81EA\u9009\u80A1";
        Font font = new Font("\u5B8B\u4F53", 0, 16);
        FontMetrics fm = g.getFontMetrics(font);
        int promptWidth = fm.stringWidth(prompt);
        int lines = promptWidth / (super.m_rc.width - 8);
        g.setFont(font);
        g.setColor(HQApplet.rhColor.clProductName);
        if(promptWidth % (super.m_rc.width - 8) > 0)
            lines++;
        int y = (super.m_rc.height - fm.getHeight() * lines - 20) / 2 + 20 + fm.getAscent();
        int x = 4;
        int beginIndex = 0;
        int lineChars = (super.m_rc.width - 8) / 16;
        while(beginIndex < prompt.length())  {
            int endIndex = beginIndex + lineChars;
            String strLine = "";
            if(endIndex > prompt.length()) {
                strLine = prompt.substring(beginIndex);
                beginIndex = prompt.length();
            } else {
                strLine = prompt.substring(beginIndex, endIndex);
                beginIndex = endIndex;
            }
            x = (super.m_rc.width - 8 - fm.stringWidth(strLine)) / 2 + 4;
            g.drawString(strLine, x, y);
            y += fm.getHeight();
        }
    }

    void paintNumber(Graphics g, double num, String strSuffix, String itemName, int iPrecision, float close, 
            int x, int y) {
        StringBuffer buffer = new StringBuffer();
        if(itemName.equals("TotalAmount") || itemName.equals("CurAmount") || itemName.equals("BuyAmount") || itemName.equals("SellAmount") || itemName.equals("AmountRate"))
            g.setColor(HQApplet.rhColor.clVolume);
        else
        if(itemName.equals("ReverseCount"))
            g.setColor(HQApplet.rhColor.clReserve);
        else
        if(itemName.equals("TotalMoney"))
            g.setColor(HQApplet.rhColor.clNumber);
        else
        if(itemName.equals("ConsignRate"))
            g.setColor(HQApplet.rhColor.clNumber);
        else
        if(itemName.equals("YesterBalance"))
            g.setColor(HQApplet.rhColor.clEqual);
        else
        if(itemName.equals("UpValue")) {
            if(num > 0.0D) {
                buffer.append("+");
                g.setColor(HQApplet.rhColor.clIncrease);
            } else
            if(num == 0.0D)
                g.setColor(HQApplet.rhColor.clEqual);
            else
                g.setColor(HQApplet.rhColor.clDecrease);
        } else
        if(num > (double)close)
            g.setColor(HQApplet.rhColor.clIncrease);
        else
        if(num == (double)close || num == 0.0D)
            g.setColor(HQApplet.rhColor.clEqual);
        else
            g.setColor(HQApplet.rhColor.clDecrease);
        if(itemName.equals("UpRate")) {
            if(num == -100D || num == 0.0D) {
                buffer.append("\u2014");
            } else {
                buffer.append(Common.FloatToString(num, iPrecision));
                buffer.append("%");
            }
        } else
        if(num == 0.0D)
            buffer.append("\u2014");
        else
            buffer.append(Common.FloatToString(num, iPrecision));
        buffer.append(strSuffix);
        int strLen = fm.stringWidth(buffer.toString());
        g.drawString(buffer.toString(), x - strLen, y);
    }

    void paintHighlightBar() {
        if(quoteData != null && iHighlightIndex > quoteData.length) {
            iHighlightIndex = quoteData.length;
            if(iHighlightIndex < 1)
                iHighlightIndex = 1;
        }
        Graphics g = super.m_applet.getGraphics();
        int gap = 2;
        int oldY = super.m_rc.y + iHighlightIndex * (fontHeight + gap);
        g.setColor(HQApplet.rhColor.clBackGround);
        g.setXORMode(HQApplet.rhColor.clHighlight);
        g.fillRect(super.m_rc.x, oldY, super.m_rc.width, fontHeight);
        g.setPaintMode();
    }

    void repaintHighlightBar(int iNewPos) {
        Graphics m_graphics = super.m_applet.getGraphics();
        int gap = 2;
        int oldY = super.m_rc.y + iHighlightIndex * (fontHeight + gap);
        int newY = super.m_rc.y + iNewPos * (fontHeight + gap);
        m_graphics.setColor(HQApplet.rhColor.clBackGround);
        m_graphics.setXORMode(HQApplet.rhColor.clHighlight);
        m_graphics.fillRect(super.m_rc.x, oldY, super.m_rc.width, fontHeight);
        m_graphics.fillRect(super.m_rc.x, newY, super.m_rc.width, fontHeight);
        iHighlightIndex = iNewPos;
        m_graphics.setPaintMode();
    }

    boolean KeyPressed(KeyEvent e) {
        int iKeyCode = e.getKeyCode();
        boolean bNeedRepaint = false;
        switch(iKeyCode) {
        case 38: // '&'
            bNeedRepaint = Key_UP_Pressed();
            break;

        case 40: // '('
            bNeedRepaint = Key_DOWN_Pressed();
            break;

        case 37: // '%'
            bNeedRepaint = Key_LEFT_Pressed();
            break;

        case 39: // '\''
            bNeedRepaint = Key_RIGHT_Pressed();
            break;

        case 34: // '"'
            bNeedRepaint = Key_PAGEDOWN_Pressed();
            break;

        case 33: // '!'
            bNeedRepaint = Key_PAGEUP_Pressed();
            break;

        case 10: // '\n'
            bNeedRepaint = Key_ENTER_Pressed();
            break;
        }
        return bNeedRepaint;
    }

    boolean MouseLeftClicked(int x, int y) {
        if(y > fontHeight) {
            selectProduct(x, y);
        } else {
            int iLeft = super.m_rc.x;
            for(int i = 0; i < m_strItems.length; i++) {
                if(i > m_iStaticIndex && i < iDynamicIndex)
                    continue;
                MultiQuoteItemInfo info = (MultiQuoteItemInfo)m_htItemInfo.get(m_strItems[i]);
                if(info == null)
                    continue;
                if(x > iLeft && x < iLeft + info.width) {
                    changeSortField(m_strItems[i]);
                    break;
                }
                iLeft += info.width;
                if(iLeft > super.m_rc.x + super.m_rc.width)
                    break;
            }

        }
        return false;
    }

    private void selectProduct(int x, int y) {
        if(packetInfo != null && quoteData != null) {
            int gap = 2;
            int xx = super.m_rc.x;
            int yy = super.m_rc.y + fontHeight + gap;
            int count = quoteData.length;
            if(count > iStockRows)
                count = iStockRows;
            for(int i = 0; i < count; i++) {
                if(x > xx && x < xx + super.m_rc.width && y > yy && y < yy + fontHeight + gap) {
                    if(i + 1 != iHighlightIndex)
                        repaintHighlightBar(i + 1);
                    break;
                }
                yy += fontHeight + gap;
            }

        }
    }

    boolean MouseLeftDblClicked(int x, int y) {
        if(packetInfo != null && quoteData != null) {
            int gap = 2;
            int xx = super.m_rc.x;
            int yy = super.m_rc.y + fontHeight;
            int count = iStockRows;
            if(iStockRows > quoteData.length)
                count = quoteData.length;
            for(int i = 0; i < count; i++) {
                if(x > xx && x < xx + super.m_rc.width && y > yy && y < yy + fontHeight) {
                    String sCode = quoteData[i].code;
                    super.m_applet.QueryStock(sCode);
                    return true;
                }
                yy += fontHeight + gap;
            }

        }
        return false;
    }

    boolean MouseMoved(int x, int y) {
        if(y <= 0 || y >= fontHeight) {
            super.m_applet.setCursor(new Cursor(0));
            return false;
        }
        int iLeft = super.m_rc.x;
        for(int i = 0; i < m_strItems.length; i++) {
            if(i > m_iStaticIndex && i < iDynamicIndex)
                continue;
            MultiQuoteItemInfo info = (MultiQuoteItemInfo)m_htItemInfo.get(m_strItems[i]);
            if(info == null)
                continue;
            if(x > iLeft && x < iLeft + info.width && info.sortID != -1) {
                super.m_applet.setCursor(new Cursor(12));
                return false;
            }
            iLeft += info.width;
            if(iLeft > super.m_rc.x + super.m_rc.width)
                break;
        }

        super.m_applet.setCursor(new Cursor(0));
        return false;
    }

    boolean Key_UP_Pressed() {
        if(!bCanMove)
            return false;
        if(currentStockType == 0) {
            iUserStockKey_Up();
            return false;
        }
        if(quoteData != null && packetInfo != null)
            if(iHighlightIndex > 1) {
                repaintHighlightBar(iHighlightIndex - 1);
            } else {
                int pageSize = iStockRows;
                if(quoteData.length < iStockRows)
                    pageSize = quoteData.length;
                if(iStart > 1) {
                    iEnd = iStart;
                    iStart = (iEnd - iStockRows) + 1;
                    if(iStart < 0)
                        iStart = 1;
                    iEnd = (iStart + iStockRows) - 1;
                    iHighlightIndex = iStockRows;
                    if(iEnd > packetInfo.iCount) {
                        iEnd = packetInfo.iCount;
                        iHighlightIndex = (iEnd - iStart) + 1;
                    }
                    AskForDataOnTimer();
                    bCanMove = false;
                }
            }
        return false;
    }

    private void iUserStockKey_Up() {
        if(quoteData == null)
            return;
        if(flag == 0) {
            backQuoteData = quoteData;
            flag = 1;
        }
        if(iHighlightIndex > 1) {
            repaintHighlightBar(iHighlightIndex - 1);
            HQApplet _tmp = super.m_applet;
            if(HQApplet.bDebug != 0)
                System.out.println("iHighlightIndex - 1 = " + (iHighlightIndex - 1));
            return;
        }
        int pageSize = iStockRows;
        if(backQuoteData.length < iStockRows)
            pageSize = backQuoteData.length;
        if(iStart > 1) {
            iEnd = iStart;
            if(pageSize == 1)
                iStart = iStart - pageSize;
            else
                iStart = (iStart - pageSize) + 1;
            if(iStart < 0)
                iStart = 1;
            iEnd = (iStart + iStockRows) - 1;
            iHighlightIndex = iStockRows;
            if(iEnd > backQuoteData.length) {
                iEnd = backQuoteData.length;
                iHighlightIndex = (iEnd - iStart) + 1;
            }
            int len = (iEnd - iStart) + 1;
            if(len > backQuoteData.length - iStart)
                len = backQuoteData.length - iStart;
            HQApplet _tmp1 = super.m_applet;
            if(HQApplet.bDebug != 0)
                System.out.println(" len = " + len);
            String StockCode[] = new String[len];
            int i = 0;
            for(int j = iStart - 1; i < len; j++) {
                StockCode[i] = backQuoteData[j].code;
                i++;
            }

            iUserStockCode = StockCode;
            AskForDataOnTimer();
            bCanMove = false;
        }
    }

    boolean Key_DOWN_Pressed() {
        if(!bCanMove)
            return false;
        if(currentStockType == 0) {
            iUserStockKey_DOWN();
            return false;
        }
        if(quoteData != null && packetInfo != null) {
            int lastStockNum = packetInfo.iCount;
            int firstStockNumPerPage = packetInfo.iStart;
            int pageSize = iStockRows;
            if(quoteData.length < iStockRows)
                pageSize = quoteData.length;
            if(iHighlightIndex < pageSize)
                repaintHighlightBar(iHighlightIndex + 1);
            else
            if((iStart + pageSize) - 1 < lastStockNum) {
                iStart += pageSize - 1;
                iEnd = (iStart + iStockRows) - 1;
                if(iEnd > lastStockNum)
                    iEnd = lastStockNum;
                iHighlightIndex = 1;
                AskForDataOnTimer();
                bCanMove = false;
            }
        }
        return false;
    }

    private void iUserStockKey_DOWN() {
        if(quoteData == null)
            return;
        if(flag == 0) {
            backQuoteData = quoteData;
            flag = 1;
        }
        int lastStockNum = backQuoteData.length;
        int pageSize = iStockRows;
        if(backQuoteData.length < iStockRows)
            pageSize = quoteData.length;

⌨️ 快捷键说明

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