| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 448 人关注过本帖
标题:[求助]编译不通过,错在哪?
只看楼主 加入收藏
万里雪飘
Rank: 1
等 级:新手上路
帖 子:145
专家分:0
注 册:2006-5-18
收藏
 问题点数:0 回复次数:3 
[求助]编译不通过,错在哪?

/*
程序的特点:
生成10个不重复的字母,
并且10个字母不重叠.
*/

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;

public class DaZi extends Applet implements Runnable,KeyListener
{
private Image bgImage;
private Graphics bg;
static Thread myThread;
static JFrame md;
String Zi26="";
String sz[]={"a","a","a","a","a","a","a","a","a","a"}; //用来存储10个字母
int x[]=new int[10];
int y[]=new int[10];
//字母的X,Y坐标.
int error=0,right=0,sum=0;
Toolkit KIT=this.getToolkit();
Image pinguo=KIT.createImage("pinguo.jpg");

public DaZi() //用来生成一个包含26个英文字母的字符串Zi26
{for (int i=0;i<26;i++)
Zi26+=(char)((int)'A'+i);
}

public void cushi() //调用相应的方法来初始sz[],x[],y[]的值.
{for (int i=0;i<10;i++)
{sz[i]=noRepeat(i);
x[i]=noHit(i,10);
y[i]=(int)(Math.random()*50);
}
}

public void panduan() //用来判断sz[i]的y值是否要到达屏幕下边,如果是就把Y值变为0,否则就把Y值加3.
{for (int i=0;i<10;i++)
if (y[i]>md.getHeight()-10) y[i]=0;
else y[i]=y[i]+3;

}

public void paint(Graphics g) //在屏幕X[I],Y[I]处显示字符串.
{g.setColor(new Color(255,255,128));
g.setFont(new Font("Vrinda",1,20));
for(int i=0;i<sz.length;i++)
{g.drawImage(pinguo,x[i]-6,y[i]-14,this);
g.drawString(sz[i],x[i],y[i]);
}
}

public void keyPressed(KeyEvent k) //当用户按对字母时,就新生成一个字母.
{String c=""+k.getKeyChar();
int i=0;
for(;i<sz.length;i++)
if (sz[i].equalsIgnoreCase(c)) {sz[i]=noRepeat(i); x[i]=noHit(i,10); y[i]=0; break; }
if (i<sz.length) right++;
else error++;
sum=right+error;
}

public void keyReleased(KeyEvent k){}
public void keyTyped(KeyEvent k){}

public String noRepeat(int j) //生成一个不重复的字母.
{int zc,i;
String xinx;
while(true)
{zc=(int)(Math.random()*26);
xinx=Zi26.substring(zc,zc+1);
for(i=0;i<10;i++)
if (sz[i].equals(xinx)) break;
if(i==10) return xinx;
}
}

int noHit(int i,int langth) //让字母保持车距.
{int tmpX,j,k,width=20;
while (true)
{ tmpX=(int)(Math.random()*780)+1;
for(j=0;j<10;j++)
{ if (tmpX+width<x[j] || tmpX>x[j]+width) continue; //如果欲生成的位置不与当前J所占的位置相交就判断下一个J.
if ((tmpX>=x[j] && tmpX<=x[j]+width) || (tmpX+width>=x[j] && tmpX+width<=x[j]+width)) break;
//如果欲生成的位置与当前x[j]所占据的范围相交就结束循环,重新生成一个起始位置.

}
if (j==10) {return tmpX;}
}
}

public void update(Graphics g)
{if (bgImage==null)
{bgImage=createImage(this.getSize().width,this.getSize().height);
bg=bgImage.getGraphics();
}
bg.setColor(getBackground());
bg.fillRect(0,0,this.getSize().width,this.getSize().height);
//bg.setColor(getForeground());
paint(bg);
g.drawImage(bgImage,0,0,this);
}

public void run() //用线程循环更改Y值,并根据新的坐标在屏幕上重画SZ[I];
{
while(true)
{panduan();
repaint();
try{ myThread.sleep(50); }catch(Exception e) {}
}
}

public static void main(String args[])
{DaZi m=new DaZi();
md=new JFrame("打字训练室");
md.setSize(800,600);
md.addKeyListener(m);
md.getContentPane().add(m);
m.cushi();
md.setVisible(true);
myThread=new Thread(m);
myThread.start();
}

}




已改正

编译时出错:
DaZi.java:98: 需要 "class" 或 "interface"
public void update(Graphics g)
^
DaZi.java:135: 需要 "class" 或 "interface"
}
^
DaZi.java:136: 需要 "class" 或 "interface"
^
3 错误

咋改?


[此贴子已经被作者于2006-8-9 15:21:33编辑过]

搜索更多相关主题的帖子: 编译 
2006-08-09 14:45
NiceGirl
Rank: 2
等 级:新手上路
威 望:4
帖 子:909
专家分:0
注 册:2006-6-18
收藏
得分:0 

no hit 那个方法好象多个括号,格式太乱了,都不想看。。。


曾经以为百般艰难,蓦然回首,才发现已飞渡千山。。!
2006-08-09 15:08
走火
Rank: 1
等 级:新手上路
帖 子:426
专家分:0
注 册:2005-12-28
收藏
得分:0 
本来不乱的,粘贴到这上面这乱了,不知咋回事
我是用记事本写的

我是一只小菜鸟,请大家多多照顾! QQ 87135637
2006-08-09 15:11
万里雪飘
Rank: 1
等 级:新手上路
帖 子:145
专家分:0
注 册:2006-5-18
收藏
得分:0 
搞定了,原来是我修改noHit时忘记删除"}"了.
呵呵
现在能运行了

[此贴子已经被作者于2006-8-9 15:20:12编辑过]


千里冰封,万里雪飘!!哈哈

2006-08-09 15:19
快速回复:[求助]编译不通过,错在哪?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029215 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved