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

📄 在网页上发布统计曲线.htm

📁 在网页上发布统计曲线
💻 HTM
📖 第 1 页 / 共 3 页
字号:
                  href="http://dev.csdn.net/articlelist.aspx?c=13">其他</A>&nbsp;&nbsp;(<A 
                  href="http://www.csdn.net/Rss/RssFeed.aspx?rssid=1&amp;bigclassid=13">rss</A>)&nbsp;&nbsp;&nbsp;&nbsp;</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
      <TABLE cellSpacing=1 cellPadding=0 width="100%" bgColor=#000000 
        border=0><TBODY>
        <TR>
          <TD vAlign=top bgColor=#ededed>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>
                <TD align=right background=在网页上发布统计曲线.files/top.gif 
                  height=27><FONT 
              class=fonttitle>积极原创作者&nbsp;</FONT></TD></TR></TBODY></TABLE>
            <TABLE cellSpacing=1 cellPadding=2 width="100%" border=0>
              <TBODY>
              <TR>
                <TD align=right><A 
                  href="http://dev.csdn.net/user/3cts">3cts</A>&nbsp;<FONT 
                  color=#ff0000>(14)</FONT></TD></TR>
              <TR>
                <TD align=right><A 
                  href="http://dev.csdn.net/user/girlspicy">girlspicy</A>&nbsp;<FONT 
                  color=#ff0000>(13)</FONT></TD></TR>
              <TR>
                <TD align=right><A 
                  href="http://dev.csdn.net/user/piggybank">piggybank</A>&nbsp;<FONT 
                  color=#ff0000>(11)</FONT></TD></TR>
              <TR>
                <TD align=right><A 
                  href="http://dev.csdn.net/user/tangl_99">tangl_99</A>&nbsp;<FONT 
                  color=#ff0000>(23)</FONT></TD></TR>
              <TR>
                <TD align=right><A 
                  href="http://dev.csdn.net/user/uiiang">uiiang</A>&nbsp;<FONT 
                  color=#ff0000>(2)</FONT></TD></TR>
              <TR>
                <TD align=right><A 
                  href="http://dev.csdn.net/user/kingofark">kingofark</A>&nbsp;<FONT 
                  color=#ff0000>(22)</FONT></TD></TR>
              <TR>
                <TD align=right><A 
                  href="http://dev.csdn.net/user/cxl34">cxl34</A>&nbsp;<FONT 
                  color=#ff0000>(4)</FONT></TD></TR>
              <TR>
                <TD align=right><A 
                  href="http://dev.csdn.net/user/ezerg">ezerg</A>&nbsp;<FONT 
                  color=#ff0000>(58)</FONT></TD></TR>
              <TR>
                <TD align=right><A 
                  href="http://dev.csdn.net/user/zhaowang">zhaowang</A>&nbsp;<FONT 
                  color=#ff0000>(3)</FONT></TD></TR>
              <TR>
                <TD align=right><A 
                  href="http://dev.csdn.net/user/dennis_0714">dennis_0714</A>&nbsp;<FONT 
                  color=#ff0000>(3)</FONT></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD>
    <TD vAlign=top width=786>
      <TABLE cellPadding=4 width="100%" border=0>
        <TBODY>
        <TR>
          <TD width=10 height=19></TD>
          <TD height=19>
            <TABLE cellSpacing=3 cellPadding=3 width="100%" border=0>
              <TBODY>
              <TR>
                <TD><A href="http://www.csdn.net/">CSDN</A> - <A 
                  href="http://dev.csdn.net/">文档中心</A> - <FONT color=#003399><A 
                  id=ArticleTitle1_ArticleTitle1_hlClass 
                  href="http://dev.csdn.net/articlelist.aspx?c=6">Java</A></FONT> 
                </TD>
                <TD align=right>阅读:<SPAN 
                  id=ArticleTitle1_ArticleTitle1_lblReadCount>1500</SPAN> 
                  &nbsp;&nbsp;评论: <SPAN 
                  id=ArticleTitle1_ArticleTitle1_lblCommentCount>1</SPAN> 
                  &nbsp;&nbsp; <A 
                  href="http://dev.csdn.net/article/5/5484.shtm#Comment">参与评论</A> 
                </TD></TR></TBODY></TABLE>
            <TABLE cellSpacing=3 cellPadding=3 width="100%" bgColor=#eeeeee 
            border=0>
              <TBODY>
              <TR>
                <TD noWrap width=60 height=0></TD>
                <TD></TD></TR>
              <TR>
                <TD noWrap align=middle bgColor=#003399 height=16><FONT 
                  color=#ffffff>标题</FONT></TD>
                <TD><B>&nbsp; <SPAN 
                  id=ArticleTitle1_ArticleTitle1_lblTitle>在网页上发布统计曲线</SPAN></B>&nbsp;&nbsp;&nbsp;&nbsp; 
                  选择自 <A id=ArticleTitle1_ArticleTitle1_AuthorLink 
                  href="http://dev.csdn.net/user/dadado">dadado</A> 的 Blog 
</TD></TR>
              <TR>
                <TD align=middle bgColor=#003399 height=16><FONT 
                  color=#ffffff>关键字</FONT></TD>
                <TD width=500>&nbsp; <SPAN 
                  id=ArticleTitle1_ArticleTitle1_lblKeywords>在网页上发布统计曲线</SPAN></TD></TR>
              <TR>
                <TD align=middle bgColor=#003399 height=16><FONT 
                  color=#ffffff>出处</FONT></TD>
                <TD>&nbsp; <SPAN 
                  id=ArticleTitle1_ArticleTitle1_lblSource>http://bbs.java.com.cn</SPAN></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD width=10></TD>
          <TD><SPAN id=ArticleContent1_ArticleContent1_lblContent>
            <P>&nbsp;&nbsp; 一、引言 <BR>&nbsp;&nbsp;&nbsp; 
            在&nbsp;寥恋腎nternet上制作极富个性化的主页、及时发布令人 
            <BR>心动的信息,以便吸引全世界不同肤色、不同职业的人们驻"足"观看, 
            <BR>以致流连忘返,甚者慷慨解囊,是Internet冲浪者心中的梦想。通过合 
            <BR>理运用HTML脚本语言提供的表格、列表、字体和段落的格式化、多媒 
            <BR>体支持等,能使网页内容清晰、层次分明、可读性强,这些已有众多文 <BR>献论述,在此不再赘述。 
            <BR>&nbsp;&nbsp;&nbsp; 我们知道,在各种信息中,统计信息堪称是用得较多、具有相当说 
            <BR>服力的信息,而表达统计数据最直观的方式是根据这些数据绘制曲线 <BR>。文献[1]用相当的篇幅介绍了如何在Window 
            s操作系统中编写一个 <BR>具有OLE服务器能力的统计曲线绘制工具,而本文的主题则是:如何利 
            <BR>用Java对绘图的支持,编写一个根据统计数据绘制曲线的小程序(Appl 
            <BR>et)Plot,通过把Plot编译生成的字节码文件Plot.class嵌入到HTML脚 
            <BR>本中,从而实现在网页上发布统计曲线的目的。 <BR>&nbsp;&nbsp;&nbsp; 二、Java编程概述 
            <BR>&nbsp;&nbsp;&nbsp; 1.Java语言规范 <BR>&nbsp;&nbsp;&nbsp; 
            Java继承了C++的基本语法,摒弃了一些过时的特征,比如预编译 <BR>的头文件、宏、条件编译,数据结构的结构体、枚举体和联合体,容易 
            <BR>导致安全性问题的指针,以及晦涩难懂的多重继承等,借鉴了Objectiv <BR>e 
            C的接口和Ada的包(package),以及内置了Internet网络所需要的基 
            <BR>本特征:结构中立(任何芯片、任何操作系统可以运行同一版本的Java 
            <BR>程序)、安全性(避免感染病毒和防止非法访问)、多线程和网络通信 
            <BR>等。事实上,上述被Java抛弃的特征,如指针和类的多重继承,都是由 
            <BR>于太复杂而遭C++程序员诅咒的;而新发展的特征,如结构中立、安全 
            <BR>性、多线程和网络通信等,是C++程序员极想实现而又非常难实现的特 <BR>征。 <BR>&nbsp;&nbsp;&nbsp; 
            2.JDK <BR>&nbsp;&nbsp;&nbsp; Windows程序员一定都知道做Windows开发要用Windows 
            SDK(软件 <BR>开发工具),现在,做Ja va开发的程序员也都知道编写Java小程序要用 
            <BR>JDK(Java开发工具)了。然而,与SDK主要采用结构体和函数等面向过 
            <BR>程的方式提供Windows编程接口不同,JDK采用包、界面和类等面向对 
            <BR>象的方式提供Java编程接口。从这种意义上说,JDK与Microsoft Visu <BR>al C++的MFC,或者Bor 
            land C++的OWL相似:它是一个类库,一个应用 <BR>框架,一个无缝集成的解决方案。 
            <BR>&nbsp;&nbsp;&nbsp; 最先发布的JDK应该算JDK 1.0.3α,它是1995年Sun公司在全球范 
            <BR>围内进行Java程序设计大奖赛时随HotJava 1.0.3α发放的。在该版 
            <BR>本中,通用包实现得比较少,只有java.lang、j ava.util和java.io, 
            <BR>而其他有关用户界面和网络通信的包都在HotJava中提供。尔后发行 
            <BR>了1.0版,这是提供给各Java平台开发公司的,其中,包全部独立出来, <BR>共八个:java.applet、ja 
            va.awt&nbsp; 、java.awt.image 、java.awt.p <BR>eer 
            、java.io、java.lang、java.net 和java. util 以及一个sun. 
            <BR>tools.debug。本文的程序基于1.0版本编写。由于1.0.3α和1.0两个 
            <BR>版本的包安排差别很大,因而用前一个版本编写的程序在后一个版本 
            <BR>的编译工具中编译有可能通不过,要作修改。在1996年8月底,Sun公司 <BR>在Internet上发布了1.1版,1.1版在 
            <BR>&nbsp;&nbsp;&nbsp; 三、设计目标和程序构思 <BR>&nbsp;&nbsp;&nbsp; 
            1.0版基础上稍有改进,两个版本保持完全的兼容。 <BR>&nbsp;&nbsp;&nbsp; 
            现在我们回到本文的主题上。首先,考虑编写一个Java小程序,它 <BR>的界面和功能可以这样来描述: 
            <BR>&nbsp;&nbsp;&nbsp; 统计标题和统计数据由HTML的param标注提供,统计数据的个数没 <BR>有限制; 
            <BR>&nbsp;&nbsp;&nbsp; 根据数据的取值画出带刻度的X、Y轴; <BR>&nbsp;&nbsp;&nbsp; 
            在用线连接每个数据点的同时标出该点的坐标值; <BR>&nbsp;&nbsp;&nbsp; 提供绘制三组曲线的选择。 
            <BR>&nbsp;&nbsp;&nbsp; 针对上述要求,考虑构造两个类来完成:Curve类用于实现绘制统 
            <BR>计曲线的各个方面;Plo t类则派生于Applet,它是本程序的小程序类, 
            <BR>通过使用Curve类来完成统计曲线的绘制。鉴于篇幅,下面给出实现要 <BR>点及其程序。如需要全部源代码的读者,请与笔者联系。 
            <BR>&nbsp;&nbsp;&nbsp; 1.Curve类 <BR>&nbsp;&nbsp;&nbsp;&nbsp; 
            Curve类构造主要基于以下几点考虑。 <BR>&nbsp;&nbsp;&nbsp; 
            (1)基类。Curve从Java所有类的基类Object派生,那么就可以不 <BR>显式声明了。 
            <BR>&nbsp;&nbsp;&nbsp; class Curve { 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...... <BR>&nbsp;&nbsp;&nbsp; } 
            <BR>&nbsp;&nbsp;&nbsp; (2)绘图环境。根据Windows等窗口操作系统的编程经验,向显示 
            <BR>器、打印机等输出设备绘图是通过绘图环境来实现的。由于Java要面 
            <BR>向所有平台,包括Windows、Unix和Macintosh 等,它们的绘图环境(如 
            <BR>显示器)概念很不一样。那么,Java如何来实现绘图呢?原来,Java在j 
            <BR>ava.awt包中通过Graphics类来提供了对各种绘图设备的设备环境的 <BR>抽象类封装。用Window 
            s编程来作对照,Graphics所代表的概念就是W <BR>indows GDI的设备环境(Device 
            Context),也就是MFC中CDC类或OWL的 <BR>TDc类。有了这样的比较,对Graphics就比较好理解了。也就是,所有 
            <BR>绘制直线、矩形、椭圆、多边形、设置字体、绘制文本等操作,调用G 
            <BR>raphics类中的相应方法即可。下面代码是通过Curve构造器将小程序 
            <BR>类Plot的设备环境对象g传递给Curve,以被其他各个绘制方法使用: <BR>&nbsp;&nbsp;&nbsp; 
            public Curve(Graphics g) <BR>&nbsp;&nbsp;&nbsp; { 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myGC = g; 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...... <BR>&nbsp;&nbsp;&nbsp; } 
            <BR>&nbsp;&nbsp;&nbsp; (3)绘制算法。绘制算法就是绘制统计曲线的实现方法,包括绘制 
            <BR>标题、坐标轴、数据联线、标出数据点坐标等,以及其逆过程:清除这 
            <BR>些绘制(因为当绘制其他曲线时,得保证刷新前一次绘制的所有内容) 
            <BR>。鉴于篇幅,下面仅给出显示数据的方法实现showData. <BR>&nbsp;&nbsp;&nbsp; public 
            synchronized void showData(Vector v) <BR>&nbsp;&nbsp;&nbsp; { 
            <BR>&nbsp;&nbsp;&nbsp; float maxY=0; <BR>&nbsp;&nbsp;&nbsp; 
            myGC.setColor(Color.red); <BR>&nbsp;&nbsp;&nbsp; int xPoint; 
            <BR>&nbsp;&nbsp;&nbsp; int yPoint; <BR>&nbsp;&nbsp;&nbsp; <A 
            href="file://确/">file://确/</A>定Vector中的最大值。 <BR>&nbsp;&nbsp;&nbsp; 
            for(int i = 0; i &lt; v.size(); i++) <BR>&nbsp;&nbsp;&nbsp; { 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; float temp = 
            ((Float)v.elementAt(i)).floatValue(); 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(temp &gt; maxY) 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxY = 
            temp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } 
            <BR>&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp; <A 
            href="file://确/">file://确/</A>定第一个数据点的X坐标。 <BR>&nbsp;&nbsp;&nbsp; 
            xPoint = xOrigin + (xSpacing/2); <BR>&nbsp;&nbsp;&nbsp; int oldX = 
            0; <BR>&nbsp;&nbsp;&nbsp; int oldY = 0; <BR>&nbsp;&nbsp;&nbsp; <A 
            href="file://在/">file://在/</A>数据点处绘制一个小圆圈。 <BR>&nbsp;&nbsp;&nbsp; 
            for(int j = 0; j &lt; v.size(); j++) <BR>&nbsp;&nbsp;&nbsp; { 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yPoint = 
            yOrigin(int)((axisH/maxY) * 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            ((Float)v.elementAt(j)).floatValue()); 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myGC.fillRect(xPoint, 
            yPoint, 3, 3); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A 
            href="file://在/">file://在/</A>数据点之间联线。 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if((oldX != 0) 
            &amp;&amp; (oldY != 0)) 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            myGC.drawLine(oldX-xSpacing, oldY, xPoint, yPoint) <BR>; 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            myGC.setColor(Color.blue); 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A 
            href="file://在/">file://在/</A>数据点边上写出数据值。 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String coordString = 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            Float.toString(((Float)v.elementAt(j)).floatValue( <BR>)); 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            myGC.drawString(coordString, xPoint+5, yPoint - 4); 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            myGC.setColor(Color.red); 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xPoint += xSpacing; 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oldX = xPoint; 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oldY = yPoint; 
            <BR>&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp; } <BR>&nbsp; 
            <BR>&nbsp;&nbsp;&nbsp; 2.Plot类 <BR>&nbsp;&nbsp;&nbsp; 

⌨️ 快捷键说明

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