?? ch5.htm
字號(hào):
<HTML><HEAD><TITLE>developer.com - Reference</TITLE><META NAME="Author" CONTENT="developer.com"><META NAME="Keywords" CONTENT="javascript, ActiveX, VRML, Push, channel,push channel, applet, directory, news, community, developer, internet,intranet, java, java applet, J++, javabeans, java products, tools, javatools, JDK, java development kit, java development environment, JIT,JavaPlan, enterprise tools, JVM, Java Virtual Machine, Java resources, API,browser, java documentation, CDF, Common Desktop Format, RDF, ResourceDescription Framework, Netcaster, Netcast, Castanet, meta-language, metadata,solaris, Solaris, SUN, CGI, Perl, Oracle, database, network, Netscape API,Apache, apache, SSL, mSQL, Netscape, Fasttrack, FastTrack,industry standard, ActiveX bridge, web, internet, site, sitedesign, microsoft, active server pages, asp, iis, nt, win95, 95, html, cgi,frontpage, business, corporate, vbscript, javascript, activex, isapi,database, access, sql, server, www, 3.0, 3.01, 3.02, 3.03, 3.04, 4.0,4.0b2, 4.01, 4.03, 4.04, connection, online, commerce, publisher,publishing, publish, webmaster, dynamic html, dhtml, windows 98, netscape,netscape software, shareware, magazines, jobs, japan, free, freeware, freestuff"><META NAME="description" CONTENT="Developer.com is the leading onlineservice for developers. It includes Gamelan, the official directory for Java, as wellas news, information, tutorials, and directories for other Internet technologiesincluding ActiveX, JavaScript, perl, VRML, Java Beans, push technologies, andother Internet and intranet technologies. Developer.com is also the home ofDeveloper Direct, the Professional Developer's Store, where developers canpurchase and download thousands of Web, authoring and other developmentproducts at some of today's lowest prices."><META NAME="distribution" CONTENT="global"><META NAME="resource-type" CONTENT="document"><META NAME="language" CONTENT="en"></HEAD><BODY BACKGROUND="/images/curve_r-wide.gif" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#DD0000" VLINK="#999999" ALINK="#FF0000"><TABLE><TR><TD VALIGN=TOP WIDTH=120><A HREF="/" ><IMG SRC="/images/masthead_r.gif" WIDTH="100" HEIGHT="78" BORDER="0"ALT="Developer.com Logo"></a></TD><TD><a target="resource window" href="http://adserver.developer.com/cgi-bin/accipiter/adclick.exe/AREA=DCBAN.REF/DT=null"><img src="http://adserver.developer.com/cgi-bin/accipiter/adserver.exe/AREA=DCBAN.REF/DT=null" HEIGHT="60" WIDTH="468" ALT="Click here to support our advertisers"><BR><CENTER>Click here to support our advertisers</CENTER></a></TD></TR></TABLE><!--outer table--><TABLE><!--outer table--><TR><!--outer table--><TD VALIGN="TOP"><!--navbar info --><table><tr><td><A HREF="http://www.developerdirect.com/" ><IMG SRC="/images/button_s.gif" width="15" height="11" BORDER="0"><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000"><b>SHOPPING</b></font></a></td></tr><tr><td><A HREF="/community/jobs/c_jobs.html"><IMG SRC="/images/button_d.gif" width="15" height="11" BORDER="0"><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000"><B>JOB BANK</B></font></a></td></tr><tr><td><A HREF="http://www.classifieds2000.com/cgi-cls/display.exe?Developer+computer+searchcomputercategories"><IMG SRC="/images/button_d.gif" width="15" height="11" BORDER="0"><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000"><B>CLASSIFIEDS</B></font></a></td></tr><tr><td><A HREF="/directories/directories.html"><IMG SRC="/images/button_d.gif" width="15" height="11" BORDER="0"><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000"><B>DIRECTORIES</B></font></a></td></tr><tr><td><A HREF="/reference/"><IMG SRC="/images/button_r.gif" width="15" height="11" BORDER="0"><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000"><B>REFERENCE</B></font></a><br><a href="/reference/r_library.html"><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000">Online Library</a></font></td></tr><tr><td><A HREF="/classroom/"><IMG SRC="/images/button_r.gif" width="15" height="11" BORDER="0"><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000"><B>LEARNING CENTER</B></font></a></td></tr><tr><td><A HREF="/journal/"><IMG SRC="/images/button_n.gif" width="15" height="11" BORDER="0"><B><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000">JOURNAL</font></B></a></td></tr><tr><td><A HREF="/news/"><IMG SRC="/images/button_d.gif" width="15" height="11" BORDER="0"><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000"><b>NEWS CENTRAL</b></font></a></td></tr><tr><td><A HREF="/downloads/"><IMG SRC="/images/button_d.gif" width="15" height="11" BORDER="0"><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000"><b>DOWNLOADS</b></font></a></td></tr><tr><td><A HREF="/community/" ><IMG SRC="/images/button_c.gif" width="15" height="11" BORDER="0"><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000"><B>COMMUNITY</B></font></a></td></tr><tr><td><A HREF="/calendar/"><IMG SRC="/images/button_d.gif" width="15" height="11" BORDER="0"><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000"><b>CALENDAR</b></font></a></td></tr><tr><td><A HREF="/about/"><IMG SRC="/images/button_a.gif" width="15" height="11" BORDER="0"><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000"><b>ABOUT US</b></a></font></td></tr></table><table><tr><td><form action="/subscribe/list.cgi" method=post ><img src="/images/rule.gif" width="100" height="2"><br><B><FONT FACE="Arial, Helvetica" SIZE="-1">Journal:</b></font><br><input name='email' value='your e-mail' size="11"><input type='hidden' name='state' value='Subscribe'></td></tr><tr><td><input type='submit' value='Subscribe'><br><font size="-1">Get the weekly email highlights from the most popular journal for developers!<br><a href="http://www.developer.com/subscribe.html">Current issue</a><img src="/images/rule.gif" width="100" height="2"><input type='hidden' name='name' value='New Subscriber'></FORM></td></tr></table><!--/navbar--><font size="-1"><A HREF="http://www.developer.com">developer.com</a><BR><A HREF="http://www.developerdirect.com">developerdirect.com</a><BR><A HREF="http://www.htmlgoodies.com">htmlgoodies.com</a><BR><A HREF="http://www.javagoodies.com">javagoodies.com</a><br><A HREF="http://www.jars.com">jars.com</a><BR><a href="http://www.intranetjournal.com">intranetjournal.com</a><br><a href="http://www.javascripts.com">javascripts.com</a><br></font><!--outer table--></TD><!--outer table--><TD VALIGN="TOP"><BLOCKQUOTE><P><img src="/images/header_r.gif" width="440" height="50"><P><MAP NAME ="header_r2.gif.map"><AREA SHAPE ="RECT" HREF ="/reference/author.html" COORDS ="361,0,440,29"><AREA SHAPE ="RECT" HREF ="/reference/basic.html" COORDS ="254,0,360,29"><AREA SHAPE ="RECT" HREF ="/reference/help.html" COORDS ="183,0,251,29"><AREA SHAPE ="RECT" HREF ="/reference/cool.html" COORDS ="100,0,181,29"><AREA SHAPE ="RECT" HREF ="/reference/mybook.html" COORDS ="0,0,100,29"></MAP><MAP NAME ="header_r1.gif.map"><AREA SHAPE ="RECT" HREF ="/reference/personalize.html" COORDS ="339,0,439,29"></MAP><p><font face="Arial,Helvetica" size="-1" color="#006666"><A HREF="/reference/r_library.html"><B>All Categories</A> :</B><b><A HREF="/reference/r_java.html">Java</A></b></font><p> <META NAME="GENERATOR" CONTENT="Mozilla/3.0b5aGold (WinNT; I) [Netscape]"><H1><FONT COLOR=#FF0000>Chapter 5</FONT></H1><H1><B><FONT SIZE=5 COLOR=#FF0000>Adding Graphs and Scrollbars tothe Spreadsheet</FONT></B></H1><P><HR WIDTH="100%"></P><P><H3 ALIGN=CENTER><FONT COLOR="#000000"><FONT SIZE=+2>CONTENTS<A NAME="CONTENTS"></A></FONT></FONT></H3><UL><LI><A HREF="#Tutorial" >Tutorial</A><UL><LI><A HREF="#ClassOrganization" >Class Organization</A></UL><LI><A HREF="#AddingScrollbars" >Adding Scrollbars</A><UL><LI><A HREF="#AddingtheScrollbarClass" >Adding the Scrollbar Class</A><LI><A HREF="#HandlingScrollbarEvents" >Handling Scrollbar Events</A><LI><A HREF="#InsidetheSpreadsheetContainerPaintMe" >Inside the SpreadsheetContainer Paint Methods</A></UL><LI><A HREF="#MarkingCells" >Marking Cells</A><LI><A HREF="#DrawingGraphs" >Drawing Graphs</A><LI><A HREF="#Summary" >Summary</A></UL><HR><P>In the previous two chapters, you have developed a spreadsheetapplet that supports general spreadsheet functionality, dialogboxes for setting fonts and colors, and saving and opening files.Along the way, many aspects of the AWT package have been discussed,from basic components to layouts to methods of the Graphics classto the AWT Toolkit.<P>With all these tools at hand, a few last touches can now be addedto the applet. Scrollbars are added to the spreadsheet, as issupport for marking cells. The latter will be used to generatethe final feature of the spreadsheet applet, the runtime generationof graphs.<P>Since this chapter builds on the AWT tools explored in the earlierchapters, it will go straight into the tutorial. Any new AWT featuresthat aren't covered in this exposition will be explained as partof the tutorial.<H2><A NAME="Tutorial"><FONT SIZE=5 COLOR=#FF0000>Tutorial</FONT></A></H2><P>In this tutorial, you'll enhance the spreadsheet applet from theprevious chapter to support scrollbars, cell marking, and dynamicgraphs. Some new classes have been written to create the graphsand the supporting dialogs, and some classes from the previoussection have been modified to support new functions.<H3><A NAME="ClassOrganization">Class Organization</A></H3><P>Table 5.1 lists the classes used in this chapter's version ofthe spreadsheet applet. Since many of these classes were createdin the previous chapter, the new classes have their names in boldfacetype; the classes that were modified have their names italicized.<BR><P><CENTER><B>Table 5.1. Spreadsheet classes.</B></CENTER><P><CENTER><TABLE BORDERCOLOR=#000000 BORDER=1 WIDTH=80%><TR VALIGN=TOP><TD WIDTH=181><I>Class</I></TD><TD WIDTH=410><I>Description</I></TD></TR><TR VALIGN=TOP><TD WIDTH=181>Cell</TD><TD WIDTH=410>Contains a String and evaluated value corresponding to a single cell.</TD></TR><TR VALIGN=TOP><TD WIDTH=181>CellContainer</TD><TD WIDTH=410>Contains a matrix of Cells. The String in each Cell is evaluated according to whether it is a formula, a literal numeric value, or an empty cell. Can write or read its contents from a file.</TD></TR><TR VALIGN=TOP><TD WIDTH=181>FormulaParser</TD><TD WIDTH=410>Used to parse out the individual string fragments that make up a single formula. Converts literal strings to their numeric values.</TD></TR><TR VALIGN=TOP><TD WIDTH=181>FormulaParserException</TD><TD WIDTH=410>An Exception that is thrown if a formula is poorly constructed.</TD></TR><TR VALIGN=TOP><TD WIDTH=181>ArgValue</TD><TD WIDTH=410>A FormulaParser helper class used to store information about an argument in a formula.</TD></TR><TR VALIGN=TOP><TD WIDTH=181>ChooseColorDialog</TD><TD WIDTH=410>Dialog box for selecting the color of a spreadsheet element.</TD></TR><TR VALIGN=TOP><TD WIDTH=181>colorDisplay</TD><TD WIDTH=410>A canvas class that ChooseColorDialog uses to display what a spreadsheet cell would look like if certain colors were picked.</TD></TR><TR VALIGN=TOP><TD WIDTH=181>ColoredCheckbox</TD><TD WIDTH=410>Draws a checkbox with its colors set to a different color.</TD></TR><TR VALIGN=TOP><TD WIDTH=181>ColoredCheckboxGroup</TD><TD WIDTH=410>Creates a group of colored checkboxes.</TD></TR><TR VALIGN=TOP><TD WIDTH=181>ChooseFontDialog</TD><TD WIDTH=410>Dialog box for selecting a font for the spreadsheet.</TD></TR><TR VALIGN=TOP><TD WIDTH=181>fontDisplay</TD><TD WIDTH=410>A canvas class that ChooseFontDialog uses to display what a font looks like.</TD></TR><TR VALIGN=TOP><TD WIDTH=181><B>GraphCanvas</B></TD><TD WIDTH=410>A canvas class that actually paints a graph.</TD></TR><TR VALIGN=TOP><TD WIDTH=181><B>GraphData</B></TD><TD WIDTH=410>An accessor class for holding data needed for drawing graphs.</TD></TR><TR VALIGN=TOP><TD WIDTH=181><B>GraphDialog</B></TD><TD WIDTH=410>Dialog box that brings up the GraphCanvas that displays the requested graph.</TD></TR><TR VALIGN=TOP><TD WIDTH=181>SpreadsheetCell</TD><TD WIDTH=410>Provides for the visual presentation of a single Cell.</TD></TR><TR VALIGN=TOP><TD WIDTH=181>SpreadsheetContainer</TD><TD WIDTH=410>Manages the visual presentation of a matrix of SpreadsheetCells. Provides an interface for changing the value of a cell. Supports the display of a currently highlighted cell. Sets fonts and colors of SpreadsheetCells.</TD></TR><TR VALIGN=TOP><TD WIDTH=181>SpreadsheetFrame</TD><TD WIDTH=410>Provides the main presentation of the spreadsheet by displaying the SpreadsheetContainer, managing mouse selections on that spreadsheet, reading a text field for changing cell values, and handling a menu for actions such as invoking dialog boxes.</TD></TR><TR VALIGN=TOP><TD WIDTH=181>SpreadsheetApplet</TD><TD WIDTH=410>Responsible for creating, showing, and hiding the SpreadsheetFrame that provides this applet's visual display.</TD></TR></TABLE></CENTER><H2><A NAME="AddingScrollbars"><FONT SIZE=5 COLOR=#FF0000>AddingScrollbars</FONT></A></H2><P>As the spreadsheet applet stood at the end of <A HREF="ch4.htm" >Chapter 4</A>,"Enhancing the Spreadsheet Applet," you couldn't look
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -