java寫的英文打字練習的applet
game
-----------------------
import java
import java
import java
import begin;
public class game extends Applet{
String beginLabel=
String quitLabel=
Label label= new Label(
TextArea context= new TextArea(
Button beginButton= new Button(beginLabel);
Button quitButton= new Button(quitLabel);
begin bb;
public void init(){
context
setBackground(Color
Font f=new Font(
label
add(
add(
add(
add(
}
public boolean action(Event evt
if(arg
if (bb == null)
bb=new begin(this
else
bb
bb
return true;
}
else if(arg
System
return true;
}
else
return false;
}
}
begin
-----------------------
import java
import java
class Coordinate{
public int x
public char name;
public TextField tt;
public Coordinate(int x
this
this
name= na;
}
}
public class begin extends Frame{
public Applet parent;
public int wrong=
Coordinate number[];
char key[];
char gst[];
String message=
String message
String gamestring=
String quitlabel=
String clearlabel=
public String yourrecord= null;
int gst_length;
int message_length;
public TextField tt;
public int changei=
public int gstch=
public FontMetrics font_m;
public int string_x=
public Button clear
int w=
public begin(Applet parent
super(
this
this
gamestring= m;
Panel panel= new Panel();
tt= new TextField(
clear
close= new Button(quitlabel);
add(
panel
panel
panel
message_length= message
key= new char[message_length];
message
gst_length= gamestring
gst= new char[gst_length];
gamestring
init();
add(
resize(
h=
setResizable(false);
show();
}
public void setText(String tt){
gamestring= tt;
gst_length= gamestring
gst= new char[gst_length];
gamestring
gstch=
wrong=
Graphics g= getGraphics();
string_x=
repaint();
}
public void init(){
setBackground(Color
h=
number= new Coordinate[message_length+
for(int I=
number[I]= new Coordinate(62+I*30,h,key[I]);
}
for(int I=0;I<14;I++){
number[14+I]= new Coordinate(64+I*30,h+30,key[14+I]);
}
for(int I=0;I<14;I++){
number[28+I]= new Coordinate(66+I*30,h+60,key[28+I]);
}
for(int I=0;I<14;I++){
number[42+I]= new Coordinate(68+I*30,h+90,key[42+I]);
}
number[56]= new Coordinate(60,130+h,key[56]);
}
public void downboard(int I,Graphics g){
int index=I;
if(index!=56){
g.setColor(Color.lightGray);
g.fillRect(number[index].x+3,number[index].y+4,23,21);
for(int i1=0,j=1;i1<3;i1++,j+=2){
g.setColor(Color.white);
g.fillRect(number[index].x+28-(i1+1),number[index].y+i1+1,1,28-(2*i1+1)-1);
g.fillRect(number[index].x+i1,number[index].y+28-(i1+1),28-(2*i1),1);
g.setColor(Color.gray);
g.fillRect(number[index].x+i1,number[index].y+i1+1,28-(2*i1),1);
g.fillRect(number[index].x+i1,number[index].y+i1+1,1,28-(2*i1+1)-1);
}
g.setColor(Color.black);
g.drawChars(key,index,1,number[index].x+12,number[index].y+17);
}
else{
g.setColor(Color.lightGray);
g.fillRect(number[index].x+53,number[index].y+4,303,21);
for(int i1=0,j=1;i1<3;i1++,j+=2){
g.setColor(Color.white);
g.fillRect(number[index].x+360-(i1+1),number[index].y+i1+1,1,28-(2*i1+1)-1);
g.fillRect(number[index].x+i1+50,number[index].y+28-(i1+1),310-(2*i1),1);
g.setColor(Color.gray);
g.fillRect(number[index].x+i1+50,number[index].y+i1+1,310-(2*i1),1);
g.fillRect(number[index].x+i1+50,number[index].y+i1+1,1,28-(2*i1+1)-1);
}
}
}
public void paintboard(int I,Graphics g){
int index=I;
if(index!=56){
for(int i1=0,j=1;i1<3;i1++,j+=2){
g.setColor(Color.gray);
g.fillRect(number[index].x+28-(i1+1),number[index].y+i1+1,1,28-(2*i1+1)-1);
g.fillRect(number[index].x+i1,number[index].y+28-(i1+1),28-(2*i1),1);
g.setColor(Color.white);
g.fillRect(number[index].x+i1,number[index].y+i1+1,28-(2*i1),1);
g.fillRect(number[index].x+i1,number[index].y+i1+1,1,28-(2*i1+1)-1);
}
g.setColor(Color.black);
g.drawChars(key,index,1,number[index].x+12,number[index].y+17);
}
else{
for(int i1=0,j=1;i1<3;i1++,j+=2){
g.setColor(Color.gray);
g.fillRect(number[index].x+360-(i1+1),number[index].y+i1+1,1,28-(2*i1+1)-1);
g.fillRect(number[index].x+i1+50,number[index].y+28-(i1+1),310-(2*i1),1);
g.setColor(Color.white);
g.fillRect(number[index].x+i1+50,number[index].y+i1+1,310-(2*i1),1);
g.fillRect(number[index].x+i1+50,number[index].y+i1+1,1,28-(2*i1+1)-1);
}
}
}
public void paint(Graphics g){
g.setColor(Color.lightGray);
g.fillRect(0,0,600,450);
for(int I=0;I<=56;I++)
paintboard(I,g);
g.drawString(gamestring,string_x,100);
}
int ch = gst[gstch];
Graphics g1=getGraphics();
record=message2.indexOf(ch);
if(record!=56){
g1.setColor(Color.blue);
g1.fillRect(number[record].x+3,number[record].y+4,22,21);
g1.setColor(Color.red);
g1.drawChars(key,record,1,number[record].x+10,number[record].y+18);
}
else{
g1.setColor(Color.blue);
g1.fillRect(number[record].x+53,number[record].y+4,303,21);
}
}
public boolean keyDown(Event evt,int key){
int record2=0;
Graphics g= getGraphics();
if(key==8){
tt.setText("Back Space");
paintboard(changei,g);
downboard(13,g);
changei=13;
gstch--;
string_x=string_x-(font_m.charWidth(gst[gstch-1]));
g.setColor(Color.white);
g.drawChars(gst,gstch-1,1,string_x,100);
return true;
}
search();
String aa=Integer.toString(key);
record2=gamestring.indexOf(key,gstch-1);
font_m=g.getFontMetrics();
if(record2==(gstch-1))
g.setColor(Color.blue);
else{
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19295.html