日期:2014-05-20  浏览次数:20747 次

关于数组越界的问题 一个简单的程序,老错我,希望有人解惑不胜感谢!
一个java五子棋游戏部分,只有点击下保存棋子,写了点但老提示错误。自己没检查出来错哪了求解!
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
class myframe extends JFrame implements MouseListener{

int Width = Toolkit.getDefaultToolkit().getScreenSize().width;
int Height =Toolkit.getDefaultToolkit().getScreenSize().height;
static int[][] allchess=new int[19][19];
int x=0;
int y=0;
BufferedImage bgimage=null;
public myframe(){
this.setTitle("wuzi");
this.setBounds((Width-500)/2, (Height-500)/2, 500, 500);
this.setVisible(true);
this.setResizable(false);
this.addMouseListener(this);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
try {
bgimage=ImageIO.read(new File("H:/wiziqi/image/background.jpg"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void paint(Graphics g){
g.drawImage(bgimage, 1, 20, this);
g.setFont(new Font("黑体",Font.BOLD,20));
g.drawString("游戏信息", 120, 60);
g.setFont(new Font("宋体",0,12));
g.drawString("黑方时间:无限制", 40, 470);
g.drawString("白方时间:无限制", 260, 470);

//画heng线
for(int i=0;i<19;i++){
g.drawLine(10, 70+i*20,370,70+i*20);
g.drawLine(10+20*i, 70, 10+20*i, 430);
}
//画点
g.fillOval(68, 128, 4, 4);
g.fillOval(308, 128, 4, 4);
g.fillOval(308, 368, 4, 4);
g.fillOval(68, 368, 4, 4);
g.fillOval(308, 248, 4, 4);
g.fillOval(188, 128, 4, 4);
g.fillOval(68, 248, 4, 4);
g.fillOval(188, 368, 4, 4);
g.fillOval(188, 248, 4, 4);



for(int i=0;i<19;i++){
for(int j=0;i<19;j++){
if(allchess[i][j]==1){
int tempx= i*20 + 10;
int tempy= j*20 + 70;
g.fillOval(tempx - 7, tempy - 7, 14, 14);
}
if(allchess[i][j]==2){
//bai zi
int tempx=i*20+10;
int tempy=j*20+70;
g.setColor(Color.WHITE);
g.fillOval(tempx - 7, tempy - 7, 14, 14);
g.setColor(Color.BLACK);
g.drawOval(tempx - 7, tempy - 7, 14, 14);
}
}
}


}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub

}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
x = e.getX();
y = e.getY();
System.out.print("x="+x);
System.out.print(" y="+y);
if(x >= 10 && x <= 370 && y >= 70 && y <= 430){
x= (x-10) / 20;
y= (y-70) / 20;
allchess[x][y]=1;
this.repaint();
}

}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub

}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub

}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub

}
public static void main(String args[]){
myframe mychess =new myframe();
System.out.println(allchess[5][5]);