package kun;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;public class Jiemian extends JFrame implements MouseListener {
int width = Toolkit.getDefaultToolkit().getScreenSize().width;
int height = Toolkit.getDefaultToolkit().getScreenSize().height;
BufferedImage bgimage = null;
int x = 0;
int y = 0;
int[][] allchess = new int[19][19]; public Jiemian() { this.setTitle("五子棋");
this.setSize(500, 500);
this.setLocation((width - 500) / 2, (height - 500) / 2);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.addMouseListener(this);
this.setVisible(true);
try {
bgimage = ImageIO.read(new File("d:/wuziqi.jpg"));
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} } public void paint(Graphics g) {
g.drawImage(bgimage, 0, 0, this);
// g.drawString("游戏信息", x, y);
g.setFont(new Font("黑体", Font.BOLD, 20));
g.setColor(Color.ORANGE);
g.drawString("游戏信息", 392, 59);
g.setFont(new Font("宋体", 0, 17));
g.drawString("黑方时间,无限制", 26, 455);
g.drawString("白方时间,无限制", 201, 455);
g.setColor(Color.BLACK);
for (int i = 0; i < 19; i++) {
g.drawLine(10, 30 + 20 * i, 370, 30 + 20 * i);
} for (int i = 0; i < 19; i++) {
g.drawLine(10 + i * 20, 30, 10 + i * 20, 390);
}
g.fillOval(70, 90, 4, 4);
g.fillOval(70, 330, 4, 4);
g.fillOval(70, 210, 4, 4);
g.fillOval(190, 90, 4, 4);
g.fillOval(190, 210, 4, 4);
g.fillOval(190, 330, 4, 4);
g.fillOval(310, 90, 4, 4);
g.fillOval(310, 210, 4, 4);
g.fillOval(310, 330, 4, 4); for (int i = 0; i < 19; i++)
for (int j = 0; i < 19; i++) {
if (allchess[i][j] == 1) {
g.setColor(Color.BLACK);
int ax = i * 20 + 10;
int ay = j * 20 + 30;
g.fillOval(ax - 7, ay - 7, 14, 14);
System.out.println("hi");
}
if (allchess[i][j] == 2) {
int ay = j * 20 + 10;
int ax = i * 20 + 70;
g.setColor(Color.white);
g.fillOval(ax - 7, ay - 7, 14, 14);
g.setColor(Color.BLACK);
g.drawOval(ax - 7, ay - 7, 14, 14); }
} } @Override
public void mouseClicked(MouseEvent e) {
// TODO 自动生成的方法存根 } @Override
public void mousePressed(MouseEvent e) {
// TODO 自动生成的方法存根
System.out.println(e.getX() + " " + e.getY());
 x = e.getX();
 y = e.getY();
if (x >= 10 && x <= 170 && y >= 30 && y <= 190) {
System.out.println("in");
 x = (x - 10) / 20;
 y = (y - 30) / 20;

}
allchess[x][y] = 1;
this.repaint();
} @Override
public void mouseReleased(MouseEvent e) {
// TODO 自动生成的方法存根 } @Override
public void mouseEntered(MouseEvent e) {
// TODO 自动生成的方法存根 } @Override
public void mouseExited(MouseEvent e) {
// TODO 自动生成的方法存根 }}
错误提示
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 210
at kun.Jiemian.mousePressed(Jiemian.java:109)
at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Window.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$300(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)