|
用Applet写的菜单程序 machine(4) int[] result = new int[st.countTokens()];
for (int i=0; i result[i] = Integer.parseInt(st.nextToken()); } return result; }
public void paint(Graphics g) { imageDone = false; update(g); }
public void update(Graphics g) { Graphics g2;
if (!imageDone) { imageDone = g.drawImage(image, 0, 0, this); return; }
bbufG.setColor(bgColor); bbufG.fillRect(0, 0, size().width, size().height); bbufG.drawImage(image, 0, 0, this);
if (curMenu >= 0) { g2 = bbuf.getGraphics(); // Paint the overlay image g2.clipRect(dstPt[curMenu].x, dstPt[curMenu].y, srcRect[curMenu].width, srcRect[curMenu].height); g2.drawImage(image, dstPt[curMenu].x-srcRect[curMenu].x, dstPt[curMenu].y-srcRect[curMenu].y, this); g2.dispose();
g2 = bbuf.getGraphics(); for (int i=0; i drawMenuItem(g2, i); } g2.dispose(); } g.drawImage(bbuf, 0, 0, this); }
void drawMenuItem(Graphics g, int i) { int x, y, w, height; // break the menu item label into lines. String[] line = parse(item[curMenu][i], getParameter("newline"));
int hi = 0; if (i == curMenuItem) { hi = 1; getAppletContext().showStatus(itemUrl[curMenu][i]); } g.setColor(bgMenuColor[hi]); g.fillRect(menuItemRect[i].x, menuItemRect[i].y, menuItemRect[i].width, menuItemRect[i].height);
// set color for text and box g.setColor(fgMenuColor[hi]);
// draw box around menu item. g.drawRect(menuItemRect[i].x, menuItemRect[i].y, menuItemRect[i].width, menuItemRect[i].height);
// draw label g.setFont(f); y = menuItemRect[i].y + marginV; for (i=0; i g.drawString(line[i], menuItemRect[i].x+menuItemRect[i].width-fm.stringWidth(line[i]) -marginH, y + fm.getAscent()); y += fm.getHeight(); } }
public boolean mouseExit(Event evt, int x, int y) {
|