java事件的总结
黄玉生、11、14
在学了这么久的java事件总觉的有点搞不清,我想是没有总结的原因吧。下面我将我的几个小例子来更清的了解一下java事件。java事件无非就是键盘事件,鼠标事件,按钮等事件。专业点可以分为语义事件(按钮等到事件)和低层事件(键盘事件,鼠标事件);下面我简要的总结一下: 1、鼠标事件:点鼠标按钮事它会调用三个监听器方法:mousepressed,mousereleased,mouseclicked.
鼠标事件提供了mousepressed,mouseclicked,mousedragged,mouseentered,mouseexited, mouseup,mousedown,mousedrag等事件。下面介绍一个鼠标一例子:
import java.awt.*;
import java.applet.applet;
public class countclick extends applet
{int currentmarks=0;
int a,b;
public boolean mousedown(event evt,int x,int y)//鼠标按下时做的事
{ currentmarks++;//计录按下次数
repaint();//刷新面版
a=x;//得到鼠标的横坐标
b=y;//得到鼠标的竖坐标
return true;
}
public void paint(graphics g)
{ g.drawstring(" "+currentmarks,10,10);//打印按下次数
g.drawstring(" "+a,10,30);//打印鼠标的横坐标
g.drawstring(" "+b,10,20);//打印鼠标的坚坐标
}
}
//<applet code="countclick.class" width="200" height="100"></applet>
2、键盘事件:如果我们希望使用键盘获得输入信息,就必须处理键盘事件。我们可以用在conponent的keydown来实现。如下例子:
import java.applet.applet;import java.awt.*;
{ char presskey;
public boolean keydown(event evt, int key)
{ presskey=(char)key;//记录你按下的键
repaint(); return true;
}
public void paint(graphics g)
{ g.drawstring(presskey,10,10); }//打印你按下的键值
}
3、铵钮等事件:这方面的内容比较多,通过一个例子做一个简单的介绍。
//*******2004年,
//*******小豆子对事件进一步了解******//
//*******注意repaint()方法的使用******//
//**通过本程序对java的数据隐藏有了一近一步的了解***///
//*******继续努力。gogogogogo******//
import java.awt.*;
import java.applet.applet;
import java.awt.event.*;
public class awtactiontest2 extends applet implements itemlistener ,actionlistener
//实现itemlistener ,actionlistener接口
{
int num = 5;
choice ch=new choice ();
button one=new button("one");
button two=new button("two");
button three=new button("three");
image aa[];
image a;
public void init()
{
aa = new image[num];
for(int i = 0; i < num; i++)//把图片的路径加到数组中存储
{
aa[i] = getimage(getdocumentbase(),"a"+(i+1)+".jpg");
}
num=4;//给一个初值
this.setbackground(color.white);
ch. additem("a1.jpg" );
ch. additem ("a2.jpg" );
ch. additem ("a3.jpg" );
ch. additem ("a4.jpg" );
add (ch);
a = getimage(getdocumentbase(),"a1.jpg");//对a一个初值;
add (one);
add (two);
add (three);
ch.additemlistener(this);//注意把itemlistener接口implements进来
one.addactionlistener(this);//注意把actionlistener接口implements进来
two.addactionlistener(this);
three.addactionlistener(this);
}
public void itemstatechanged (itemevent e)
{
a = getimage(getdocumentbase(),ch.getselecteditem ());
repaint();
}
public void actionperformed(actionevent e)
{
if(e.getsource()==one)
{
num=1;
repaint();//对程序刷新
}
if(e.getsource()==two)
{
num=2;
repaint();
}
if(e.getsource()==three)
{
num=3;
repaint();
}
}
public void paint(graphics g)
{
//g.drawimage(aa[i],0,0,this);
int w=a.getwidth(this);
int h=a.getheight(this);
// g.drawline(100,1,200,500);
try{
g.drawimage(a,20,300,10+w,20+h,this);//要抓异常,如果图片找不到呢
g.drawimage(aa[num],50,50,200,200,this);
}
catch(exception e)
{
system.out.println(e);
}
}
public boolean handleevent(event ewt)//关窗体,我原以为这个可以把死循环给关了,其它不然.一样的关不了程序
{
if(ewt.id==event.window_destroy)
system.exit(0);
else
return super.handleevent(ewt);
return true;
}
}
//<applet code="awtactiontest2.class" width=400 height=500></applet>
注意:由于我还是开始学习写文档,还没有什么水平请大家谅解。
闽公网安备 35060202000074号