📄 page_multiquote.java
字号:
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 + -