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

📄 0063.htm

📁 关于java的开发文档
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<html>

<head>
<title>新时代软件教程:操作系统 主页制作 服务器 设计软件 网络技术 编程语言 文字编辑</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
<!--
body, table {font-size: 9pt; font-family: 宋体}
a {text-decoration:none}
a:hover {color: red;text-decoration:underline}
.1  {background-color: rgb(245,245,245)}
-->
</style>
</head>
<p align="center"><script src="../../1.js"></script></a>
    <p align="center"><big><strong>Java简明教程</strong></big></p>

<div align="right">---(原著/Marshall Brain 编译/张圣华)</div>

<p>&nbsp;&nbsp;&nbsp; 使用CGI脚本语言,可以让你开发能在服务器上运行的可执行代码。使用Java可以让程序员建立在客户端执行的的代码。因为Java是一个完整的编程语言,所以用它几乎可以做任何事情。在Java程序内部,你可以画图、绘制位图、获取用户事件并响应之、装入URL等等。</p>

<p>&nbsp;&nbsp;&nbsp; 如果你查看当今web上正在使用的Java applet,你可以会发现web程序员主要使用Java来完成四个任务: 
</p>

<table border="0" cellpadding="0" cellspacing="0" width="100%" msimagelist>
  <tr msimagelist>
    <td valign="baseline" width="42" msimagelist><img src="../images/anabull2.gif" tppabs="http://www.nease.net/~zhangsh/images/anabull2.gif" width="12" height="12" hspace="15"></td>
    <td valign="top" width="100%">建立运动的图形,包括位图循环、移动的位图和动画。例如,白宫主页上飘动的国旗就是用Java 
    applet来建立的。</td msimagelist>
  </tr>
  <tr msimagelist>
    <td valign="baseline" width="42" msimagelist><img src="../images/anabull2.gif" tppabs="http://www.nease.net/~zhangsh/images/anabull2.gif" width="12" height="12" hspace="15"></td>
    <td valign="top" width="100%">你不想通过CGI脚本语言从服务器上下载的图形对象(条型图表、曲线图、图表等)的建立。典型的图表是通过下面的方法产生的:CGI脚本语言来访问数据库,产生一个GIF,然后送到你的浏览器上。你可能不想这么做,因为这样做可能要下载一个比较大的GIF,或由于你不想在服务器端产生GIF。</td msimagelist>
  </tr>
  <tr msimagelist>
    <td valign="baseline" width="42" msimagelist><img src="../images/anabull2.gif" tppabs="http://www.nease.net/~zhangsh/images/anabull2.gif" width="12" height="12" hspace="15"></td>
    <td valign="top" width="100%">建立一个新的“控制”。如果你建立一个具有特殊性质的按钮,或一个外观象图形的更复杂的控制,你就要使用Java。因为你可以绘图和获取事件,你可以建立任何你想建立的控制。</td msimagelist>
  </tr>
  <tr msimagelist>
    <td valign="baseline" width="42" msimagelist><img src="../images/anabull2.gif" tppabs="http://www.nease.net/~zhangsh/images/anabull2.gif" width="12" height="12" hspace="15"></td>
    <td valign="top" width="100%">建立一个由一组诸如编辑框、按钮、检查框等控制所组成的应用程序。这有些类似于JavaScript所做的,但是程序完全是自包容的和编译的以使你不会泄露原代码。</td msimagelist>
  </tr>
</table msimagelist>

<p>&nbsp;&nbsp;&nbsp; Java是一种从C++继承来的完整的面向对象程序设计语言。它具有C++的所有优点,但却取消了一些不可靠的功能,如指针和不安全性。Java是通过库来扩展自己的。例如它有一个称为AWT的用户界面对象的库、一个I/O库、一个网络库等等。你可以使用Java来建立装到web上并在浏览器上执行的的applet以及单独的应用程序。我们将重点讨论浏览器上用的applet,但是由于Java具有很强的能力,你可以把Java用作基本的开发环境。</p>

<p>&nbsp;&nbsp;&nbsp; 如果你已经掌握了C++和面向对象程序概念,则对学习Java是很有帮助的。</p>

<h3><font color="#006633" mstheme>最简单的程序</font mstheme></h3>

<p>&nbsp;&nbsp;&nbsp; 在编译和检验你自己的Java applet前,你需要两样东西:Java编译器和支持Java的浏览器。这些编译器带有很多例子代码,对你是很有用的。</p>

<p>如果你已经有了编译器和支持Java的浏览器,则可以用文本编辑器输入下面的代码“欢迎来到Java世界”: 
</p>

<blockquote>
  <pre>//Hello.java

import java.awt.*;
import java.applet.*;

public class Hello extends Applet 
{
   public void paint(Graphics g) 
   {
      for (int x = 0 ; x &lt; size().height ; x++) 
      {
         g.drawString(&quot;欢迎来到Java世界!&quot;, 10, x*15);
      }
   }
}</pre>
</blockquote>

<p>&nbsp;&nbsp;&nbsp; 为了编译该程序,把它存成名为“Hello.java”的文本文件。在命令行上键入:</p>

<blockquote>
  <pre>javac Hello.java</pre>
</blockquote>

<p><i>&nbsp;&nbsp;&nbsp; 要注意字母的大小写,即使在Windows 95和Windows NT中也是如此。</i></p>

<p>&nbsp;&nbsp;&nbsp; 该命令会编译上面的Java代码,并建立一个称为“Hello.class”的文件,它是包含有二进制代码的applet。注意,如果类名称与文件名称相同,你会省去一些麻烦。</p>

<p>&nbsp;&nbsp;&nbsp; 编译器所产生的是<i>applet</i>。applet是一个二进制文件,它包含有可执行的代码。为了执行该代码,你需要把它装如到支持Java的浏览器中。用下面的HTML来实现,<i>你应该把它与你的applet</i><em>装到同一目录中</em>: 
</p>

<blockquote>
  <pre>&lt;title&gt;欢迎来到Java世界 Demo&lt;/title&gt;
&lt;hr&gt;
&lt;applet code=Hello.class width=300 height=120&gt;
&lt;/applet&gt;
&lt;hr&gt;</pre>
</blockquote>

<p>&nbsp;&nbsp;&nbsp; 在你的浏览器中装入上面的HTML代码,就可以看到“欢迎来到Java世界”applet在该HTML所在页中的一个300×120小窗口中运行的结果。</p>

<h3><font color="#006633" mstheme><strong>理解程序</strong></font mstheme></h3>

<p>&nbsp;&nbsp;&nbsp; 
让我们一行行来研究一下上面的代码,看看它是如何工作的。在下面的列表中,我们为了讨论的方便,给代码加上了行号: 
</p>

<blockquote>
  <pre>//Hello.java

1 import java.awt.*;
2 import java.applet.*;

3 public class Hello extends Applet 
4 {
5    public void paint(Graphics g) 
6    {
7       for (int x = 0 ; x &lt; size().height ; x++) 
8       {
9          g.drawString(&quot;欢迎来到Java世界!&quot;, 10, x*15);
10      }
11   }
12}</pre>
</blockquote>

<p>&nbsp;&nbsp;&nbsp; 头两行的“import”是输入库,这有些象C或C++的include语句。但是在Java中,库是一种层次结构的存在的,你可以只装入你所需要的那一段。这里我们java库装入了applet和AWT段。</p>

<p>&nbsp;&nbsp;&nbsp; 第三行中的代码说明了一个称为Hello的新类。文件名与类名应该是相同的,因为该applet被称为Hello,其文件名也应该是Hello.java,前面曾经提到过。该类是从Applet类继承来的,并进行了扩展。applet类有一个名为paint的方法(实际上, 
paint方法来自超级类Applet的Component)。该方法是在exposure上调用的。它接收一个指向用于该applet的Graphics类引用。</p>

<p>&nbsp;&nbsp;&nbsp; 用于该applet的Graphics类是applet在浏览器中的“窗口”。当你使用该Graphics类绘图时,所绘制的图形出现在该applet的窗口中。在第5行,paint方法已经被重载,并循环10次来绘制“欢迎来到Java世界!”字符(第9行)。</p>

<p>&nbsp;&nbsp;&nbsp; 在这一点上,你可能要花些功夫看一下文档中的Graphics类。该类包含有很多有用的绘图函数:直线、圆、盒等等。你可以试试这些函数。你只要简单地用不同的函数替换上面的paint方法就可以看到他们的效果。也可以试一下Graphics类中的“set”函数。例如,下面的代码演示了如何使用颜色和字体:</p>

<blockquote>
  <pre>import java.awt.*;
import java.applet.*;

public class Hello extends Applet 
{
   public void paint(Graphics g) 
   {
      g.setColor(Color.red);
      g.setFont(new Font(&quot;Helvetica&quot;, Font.PLAIN, 24));
      for (int x = 0 ; x &lt; size().height ; x++) 
      {
         g.drawString(&quot;欢迎来到Java世界!&quot;, 10, x*15);
      }
   }
}</pre>
</blockquote>

<p><b><i>&nbsp;&nbsp;&nbsp; 注意: 以我们的经验,当你运行你的Java代码时,最好刷新一下浏览器的HTML页。</i></b></p>

<h3><font color="#006633" mstheme><strong>AWT库</strong></font mstheme></h3>

<p>&nbsp;&nbsp;&nbsp; Java的AWT库允许你把用户界面建立在Java applet中。AWT库包含有所有的用于建立简单界面所需要的控制:按钮、编辑框、检查框等等。该库也有几个不同的包容器用来安排屏幕的控制,并带有很多特性。</p>

<p>&nbsp;&nbsp;&nbsp; 
下面的代码演示了如何建立按钮,并把按钮和字符都放到一个称为BorderLayout的包容器中:</p>

<blockquote>
  <pre>// ButtonTest.java

import java.awt.*;
import java.applet.*;

public class ButtonTest extends Applet
{
   int y;
   Button b;

   public ButtonTest()
   {
      y = 10;
      setLayout(new BorderLayout());

      b = new Button(&quot;应用&quot;);
      add(&quot;North&quot;, b);
   }
   public void paint(Graphics g) 
   {
      for (int x = 0 ; x &lt; size().height ; x+=10) 
      {
            g.drawString(&quot;欢迎来到Java世界!&quot;, y, x);
      }
   }
}</pre>
</blockquote>

<p>&nbsp;&nbsp;&nbsp; 该程序与前面的欢迎来到Java世界程序可能没有很大的差别。其区别就在于该applet的构造函数。在该构造函数中,代码初始化了变量“y”,设置了外观,建立了一个新的显示“应用”按钮控制,然后把按钮添加到布局中。BorderLayout有5个附属点:North、South、East、West和Center。一旦你附带了它们,就会依赖applet在屏幕上的大小来处理对象的精确位置。在这种情况下,我们把按钮放在布局中的North(顶)部。窗口还包含有用paint方法绘制的字符。</p>

<p>&nbsp;&nbsp;&nbsp; 用上面介绍的步骤编译并运行该程序。你会看到applet会绘制按钮,然后用“欢迎来到Java世界”填充applet窗口的其余部分。</p>

<p>&nbsp;&nbsp;&nbsp; 看一下文档中的Button控制和BorderLayout包容器,你会对选项有个感性认识。看一下Applet类文档中的setLayout和add方法。注意applet自己是如何“获得”外观布局并向其添加东西的。再看一下文档中的其它几个控制,并试验一下。</p>

<h3><font color="#006633" mstheme><strong>获取事件</strong></font mstheme></h3>

<p>&nbsp;&nbsp;&nbsp; 
当你单击上面例子中的按钮时,它不会做任何事情。为了让它做些事情,你需要处理它的事件。最简单的办法,是在applet类中添加事件处理函数。你也可以从按钮的基类继承一新的按钮类,然后在那里处理事件。</p>

<p>&nbsp;&nbsp;&nbsp; 下面的代码说明了该如何处理简单的事件:</p>

<blockquote>
  <pre>// ButtonTest.java

import java.awt.*;
import java.applet.*;

public class ButtonTest extends Applet
{
   int y;
   Button b;

   public ButtonTest()
   {
      y = 10;
      setLayout(new BorderLayout());

      b = new Button(&quot;应用&quot;);
      add(&quot;North&quot;, b);
   }
   public void paint(Graphics g) 
   {
      for (int x = 0 ; x &lt; size().height ; x+=10) 
      {
            g.drawString(&quot;欢迎来到Java世界!&quot;, y, x);
      }
   }
   public boolean action(Event ev, Object arg) 
   {
      if (ev.target instanceof Button) 
      {
          y+=10;
          repaint();
          return true;
      }
      return false;
   }
}</pre>
</blockquote>

<p>&nbsp;&nbsp;&nbsp; 在该applet中的“action”方法选择applet的事件流。当每个事件流到达时,它检验其是否来自Button对象。如果是,它会增加y并使该applet重绘自己。当你运行该程序时,你会发现每当你按一次按钮时,欢迎来到Java世界列都会移动10个象素。</p>

<p>&nbsp;&nbsp;&nbsp; 如果你的applet包含有两个按钮,一个North,一个South,你要使它们响应不同,则上面的代码会有问题。你需要再添加一行代码:</p>

<blockquote>
  <pre>public boolean action(Event ev, Object arg) 
{
   if (ev.target instanceof Button) 
   {
       if(&quot;应用&quot;.equals(ev.arg))
       {
          y+=10;
          repaint();
          return true;
       }
   }
   return false;
} </pre>

⌨️ 快捷键说明

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