2007年5月11日
#
<script language="JavaScript">
var MESSAGE = " 欢迎访问,谢谢! "
var POSITION = 150
var DELAY = 10
var scroll = new statusMessageObject()
function statusMessageObject(p,d) {
this.msg = MESSAGE
this.out = " "
this.pos = POSITION
this.delay = DELAY
this.i = 0
this.reset = clearMessage}
function clearMessage() {
this.pos = POSITION}
function scroller() {
for (scroll.i = 0; scroll.i < scroll.pos; scroll.i++) {
scroll.out += " "}
if (scroll.pos >= 0)
scroll.out += scroll.msg
else scroll.out = scroll.msg.substring(-scroll.pos,scroll.msg.length)
window.status = scroll.out
scroll.out = " "
scroll.pos--
if (scroll.pos < -(scroll.msg.length)) {
scroll.reset()}
setTimeout ('scroller()',scroll.delay)}
function snapIn(jumpSpaces,position) {
var msg = scroll.msg
var out = ""
for (var i=0; i<position; i++)
{out += msg.charAt(i)}
for (i=1;i<jumpSpaces;i++)
{out += " "}
out += msg.charAt(position)
window.status = out
if (jumpSpaces <= 1) {
position++
if (msg.charAt(position) == ' ')
{position++ }
jumpSpaces = 100-position
} else if (jumpSpaces > 3)
{jumpSpaces *= .75}
else
{jumpSpaces--}
if (position != msg.length) {
var cmd = "snapIn(" + jumpSpaces + "," + position + ")";
scrollID = window.setTimeout(cmd,scroll.delay);
} else { window.status=""
jumpSpaces=0
position=0
cmd = "snapIn(" + jumpSpaces + "," + position + ")";
scrollID = window.setTimeout(cmd,scroll.delay);
return false }
return true}
snapIn(100,0);
</script>
(1)属性(properties)
JAVABEAN提供了高层次的属性概念,属性在JAVABEAN中不只是传统的面向对象的概念里的属性,它同时还得到了属性读取和属性写入的API支持。属性值可以通过调用适当的BEAN方法进行。比如,可能BEAN有一个名字属性,这个属性的值可能需要调用String getName()方法读取,而写入属性值可能要需要调用void setName(String str)的方法。
每个JAVABEAN属性通常都应该遵循简单的方法命名规则,这样应用程序构造器工具和最终用户才能找到JAVABEAN提供的属性,然后查询或修改属性值,对bean进行操作。JAVABEAN还可以对属性值的改变作出及时的反应。比如一个显示当前时间的JAVABEAN,如果改变时钟的时区属性,则时钟立即重画,显示当前指定时区的时间。
(2)方法(method)
JAVABEAN中的方法就是通常的JAVA方法,它可以从其它组件或在脚本环境中调用。默认情况下,所有BEAN的公有方法都可以被外部调用,但BEAN一般只会引出其公有方法的一个子集。
由于JAVABEAN本身是JAVA对象,调用这个对象的方法是与其交互作用的唯一途径。公开BEAN方法在BEAN操作中降为辅助地位,国为两个高级BEAN特性--属性的事件是与BEAN交互的最好方式。
因为BEAN可以提供要让客户使用的public方法,但应当认识到,BEAN设计人员希望看到绝大部分BEAN的功能反映在属性和事件中,而不是在人工调用和各个方法中。
(3)事件(event)
BEAN与其它软件组件交流信息的主要方式是发送和接受事件。我们可以将BEAN的事件支持功能看作是集成电路中的输入输出引脚:工程师将引脚连接在一起组成系统,让组件进行通讯。有些引脚用于输入,有些引脚用于输出,相当于事件模型中的心头事件和接收事件。
事件为JAVABEAN组件提供了一种 发送通知给其它组件的方法。在AWT事件模型中,一个事件源可以注册事件监听器对象。当事件源检测到发生了某种事件时,它将调用事件监听器对象中的一个适当的事件处理方法来处理这个事件。
JAVABENA也是一种独立于平台和结构的应用程序编程接口(API).
就好像童年时玩的积木,把用组件搭起来的软件可以理解成用积木搭的形状不同的作品.因为组件是可重用的,所以肯定是经过很多应用程序的测试.
JAVABEAN的定义:JAVABEAN是可复用的平台独立的软件组件,开发者可以在软件构造器工具中对其直接进行可视化操作. 定义中"软件构造器"可以是WEB页面构造器,可视化应用程序构造器,GUI设计构造器或服务器应用程序构造器.而JAVABEAN可以是简单的GUI要素,如按钮和滚动条;也可以是复杂的可视化软件组件,如数据库视图.而JAVABEAN是没有GUI表现形式的,但这些JAVABEAN仍然可以使用应用程序构造器可视化地进行组合,比如JBuilder上的很多控件其实也是没有GUI形式的,但是你仍然可以拖放它们以在你的应用程序里生成相应的代码.一个JAVABEAN和一个JAVA APPLET很相似,是一个非常简单的遵循某种严格协议的JAVA类.
源自"清华大学网络系课程",只是本人在阅读时粗做的笔记
java.awt提供了基于java程序的GUI设计工具,主要包括三个概念:
Component——组件
Conainer——容器
LayoutManager——布局管理器
类java.awt.Component是许多组件类的父类,Component类中封装了组件通用的方法和属性,如图形的组件对象、大小、显示位置、前景色和背景色、边界、可见性等。相应的成员方法包括:
getComponentAt(intx,inty)
getFont()
getForeground()
getName()
getSize()
paint(Graphics g)
rapaint()
update()
setVisible(blooean b)
setSize(Dimension d)
setName(String name)等
Container也是一个类,实际上是Component的子类,其本身具有组件的性质,但是它的主要功能是容纳其它组件和容器。
LayoutManager是在需要对某个组件进行定位或判断其大小尺寸时,就会调用其对应的布局管理器。
注意:1.如果试图使用java语言提供的setLocation(),setSize(),setBounds()等方法,则都会被布局管理器覆盖。
2.如果要自己设置大小和位置,应取消布局管理器,方法为:
setLayout(null)