public class LianLianKan implements EntryPoint {
/**
* This is the entry point method.
*/
public void onModuleLoad() {
final DecoratorPanel decPanel=new DecoratorPanel();
final Label clickLable=new Label("0");
Grid grid = new Grid(6, 5);
grid.addStyleName("llktable");
String[] rand=new String[]{"1","2","3","4","5","6","1","2","3","4","5","6"};
int[] r=noRepeatRandom();
int k=0;
for(int i=0;i<6;i++){
for(int j=0;j<5;j++){
if(i!=0&&i!=5&&j!=0&&j!=4){
final Image image=new Image("/image/"+rand[r[k]-1]+".gif");
k=k+1;
image.addClickHandler(new ClickHandler(){
public void onClick(ClickEvent event) {
String tmpUrl=image.getUrl();
tmpUrl=tmpUrl.substring(tmpUrl.lastIndexOf("/")+1, tmpUrl.lastIndexOf("."));
if(tmpUrl.indexOf("s")==-1){
image.setUrl("/image/"+tmpUrl+"s.gif");
}else{
image.setUrl("/image/"+tmpUrl.substring(0, tmpUrl.indexOf("s"))+".gif");
}
for(int i=0;i<6;i++){
for(int j=0;j<5;j++){
if(i!=0&&i!=5&&j!=0&&j!=4){
Image img=(Image)((Grid)image.getParent()).getWidget(i, j);
String sl=img.getUrl();
sl=sl.substring(sl.lastIndexOf("/")+1, sl.lastIndexOf("."));
if(sl.indexOf("s")!=-1&&!img.equals(image)){
if(img.getUrl().equals(image.getUrl())){
image.setVisible(false);
img.setVisible(false);
clickLable.setText(String.valueOf(Integer.parseInt(clickLable.getText())+1));
}else{
img.setUrl(img.getUrl().replaceAll("s.gif", ".gif"));
}
}
}
}
}
}
});
grid.setWidget(i, j,image);
}else{
grid.setWidget(i, j, new Image("/image/0.gif"));
}
}
}
decPanel.add(grid);
RootPanel.get("clickLable").add(clickLable);
RootPanel.get("llk").add(decPanel);
}
private int[] noRepeatRandom(){
int[] intRet = new int[12];
int intRd = 0; //存放随机数
int count = 0; //记录生成的随机数个数
int flag = 0; //是否已经生成过标志
while(count<12){
Random rdm = new Random(System.currentTimeMillis());
intRd = Math.abs(rdm.nextInt())%12+1;
for(int i=0;i<count;i++){
if(intRet[i]==intRd){
flag = 1;
break;
}else{
flag = 0;
}
}
if(flag==0){
intRet[count] = intRd;
count++;
}
}
return intRet;
}
}