background image

  { 

//当鼠标位于以下区域(Java Applet 布局)内时,执行画线操作

 
  

if

(x0 >

50

 && x0< 

600

){M_graphics.drawLine(x0,

30

,x0,

380

);}

  

if

(y0 >

30

 && y0 <

380

){M_graphics.drawLine(

50

,y0,

600

,y0);}

  

if

(X >

50

 && X< 

600

){M_graphics.drawLine(X,

30

,X,

380

);}

  

if

(Y >

30

 && Y< 

380

){M_graphics.drawLine(

50

,Y,

600

,Y);}

  MouseMove=fase;
  x0=X; 

//传递当前座标参数

 
  y0=Y;
  }
  }
  

catch

(NullPointerException npe){} 

//捕获可能出现的异常

 
  }
 
  二、布局管理器
  本例中的 Java Applet 运行时,要在页面上 Java Applet

的运行区域内绘制相应的 标

签 来显示不同的数值,并要加入一个 文本框 来接收输入的股票代码。对这些 标签 和

文本框 位置及大小的设定,便属于布局管理的应用范畴。

  Java 语言中提供的布局管理器种类有:边界式布局、卡片式布局、流式布局和网格式
布局等,各有不同的特点,可根据实际需要选用;

但有最大自由设计空间的是 无布局管

”——

理器

即不使用任何布局格式,而通过手工方式添加组件到页面布局的绝对位置上。

本例中使用的便是 无布局管理器 。

  在使用 无布局管理器 时,首先要作出声明,即:
  setLayout(

null

);

  然后用 reshape()方法指定组件的具体位置和尺寸,
  基本语句如下所示:
  Label label1=

new

 Label(); 

//定义标签

  

this

.add(label1); 

 

 

//把标签加入布局管理器

  label1.reshape(

10

,

10

,

30

,

30

); 

//在指定位置绘制标签

  对于多个标签和文本框,参照此格式添加即可。
  三、输入、输出数据流
  Java Applet 在客户端浏览器上运行时,要从服务器端读取股票的相关数据进行做图,
这就涉及到 Java 数据流的运用。
  Java.io 包提供了多个用于与各种 I/O 设备交换信息的类,其最顶层的两个类便是输入
流类(InputStream)和输出流类(OutputStream)。
  为了便于实现,在本例中我们先在服务器端把股票数据库(如:show128.dbf)中的有
关字段写入一文本文件中(其格式为:第一行为股票的汉字名称,以后每一行内包括:开
盘日期、开盘价、最高价、最低价、收盘价、成交量),并以该支股票的代码作为文件名(如:

600001

.txt);然后,再用 Java Applet 从服务器端的文本文件中读取数据。这样,就把对服务

器端数据库的访问转化为对文件的 I/O 操作,实现的语句如下:
  URL urlc=

new

 URL("

http://127.0.0.1/

§

"+FileName+".txt");

  BufferedReader bis=

new

 BufferedReader(

new

 InputStreamReader(urlc.openStream()));