昨天某同学说她的Java-Applet作业遇到了一些小困难,请我帮忙~~一开始我真的很纠结,毕竟我对Java-Applet也不熟悉,但是同学竟然手绘了一张示意图给我传过来了,于是,我便决定帮这个忙~~~
其实这个程序说起来并不难,就是显示两张图片,在点击一张图片时显示一朵花,在点击另一张图片时显示另一朵花~~在鼠标点击的同时,还要发出声音~~
程序的结构很清楚也很简单,不过我却卡在了图片预载入这个地方~~试了多次图片都不能在第一次运行时成功载入,没办法~用PS降低了文件的大小~~~咔咔…(我尝试在程序中判断是否载入完成,结果没成功@_@)
附源代码:
import java.applet.*;
import java.awt.*;
public class MyApplet1 extends Applet{
String text;
Image cat1,cat2,flower1,flower2;
Image tmp1,tmp2;
int x1=0,y1=0,x2=550,y2=131;
public void init(){
//窗口大小
this.setSize(1000, 600);
//预装载图片
cat1 = getImage(this.getCodeBase(), "images/cat1.gif");
cat2 = getImage(this.getCodeBase(), "images/cat2.gif");
flower1 = getImage(this.getCodeBase(), "images/flower1.gif");
flower2 = getImage(this.getCodeBase(), "images/flower2.gif");
tmp1=null;
tmp2=null;
}
public void paint(Graphics g){
//判断图像是否载入完成
//while (tmp1.getHeight(null)==-1) {repaint();};
g.drawImage(cat1, x1, y1, this);//左上角的猫
g.drawImage(cat2, x2, y2, this);//右下角的猫
g.drawImage(tmp1, x1, y1, this);//修改左上角的花的位置改这里
g.drawImage(tmp2, x2, y2, this);//修改右下角的花的位置改这里
g.drawString(text,20,20);
}
public boolean mouseUp(Event evt,int x,int y)//获取鼠标点击事件
{
text=x+" "+y;
if (x>=42&&x< =272&&y>=25&&y< =402)
{
tmp1=flower1;//显示左上角的花
play(getCodeBase(),"images/click.wav");
}
else if (x>=668&&x< =920&&y>=220&&y< =590)
{
tmp2=flower2;//显示右下角的花
play(getCodeBase(),"images/click.wav");
}
repaint();
return true;
}
}
= = 汗,太高深了。Java-Applet 是啥?语法怎么看起来是C?
@evlos, Java的一个扩展类,早期的时候Flash不流行 网页的交互动画全是这玩意做的~~
语法应该像C++ 毕竟C++才是面向对象编程~
@kaisir.wang, 喔,谢谢博主这么详细的解答。
@evlos, 客气客气~~~对了 我把你加到我的友情链里啦~~你随意就好哈 ~嗯嗯
@kaisir.wang, 嘿嘿嘿嘿,我也加你咯,待会儿刷新个缓存就能看到了。
这不是我画的吗。。。。。嘿嘿嘿~~~
@プリン, 哈哈 是你画的哈 其实很少有人问我问题像你问的这么认真 嗯嗯~~
看了你的东东,很崇拜你啊,想问你 你是什么时候接触linux 的啊 ?
@不能为万能, 咔咔 我接触Linux比较早,最早还是国产红旗Linux后来玩Redhat现在玩Ubuntu.
嘿嘿 问的认真是因为这是我java最后发表的作品~~~~但是发表的时候全部都成了乱码,就显示了一张图 我又重新交了一遍。。。。。。也不知道能不能行。。。。5555555555
@プリン, 额~是嵌入在网页里么?那应该是页面编码的问题 嗯嗯
哇 偶还只是 小玩一下 小红帽而已。。。。。。
@不能为万能, Redhat是经典 嗯嗯~~其实Linux内核的东东都差不多 玩转一个就Ok 嗯嗯~