首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2ME开发 >

求高手帮忙 小弟我是一个菜鸟

2012-09-27 
求高手帮忙我是一个初学者为什么只能下在第二列上啊其他地方不能下啊import java.awt.Colorimport java.a

求高手帮忙 我是一个初学者
为什么只能下在第二列上啊 其他地方不能下啊
import java.awt.Color;
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;


public class FiveChessJFrame extends JFrame implements MouseListener{
int width = Toolkit.getDefaultToolkit().getScreenSize().width;
int height = Toolkit.getDefaultToolkit().getScreenSize().height;
int x = 0;
int y = 0;
int[][] checkwho = new int[19][19];
FiveChessJFrame() {
this.setSize(670, 420);
this.setLocation((width-670)/2, (height-420)/2);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setResizable(false);
this.addMouseListener(this);
this.setVisible(true);

}
public void paint(Graphics g){
BufferedImage bgimage = null;
try {
bgimage = ImageIO.read(new File("E:/java/workspace/fivechess/image/wuziqipan.jpg"));
}
catch (IOException e){
e.printStackTrace();
}
g.drawImage(bgimage, 0, 0, this);
g.setColor(new Color(245,222,179));
g.fillRect(190, 110, 288, 288);
g.setColor(Color.black);
for(int i = 0;i <= 18;i++) {
g.drawLine(190, 110+16*i,478,110+16*i);
g.drawLine(190+16*i, 110, 190+16*i, 398);
}
for(int i = 1; i <= 19 ; i++){
for(int j = 1; j <= 19; j++) {
int tempx;
int tempy;
if (checkwho[i][j] == 1) {
tempx = i*16+190;
tempy = j*16+110;
//JOptionPane.showMessageDialog(this, "tempx:"+tempx+"tempy:"+tempy+"checkwho[i][j]:"+checkwho[i][j]);
g.setColor(Color.black);
g.fillOval(tempx-8, tempy-8, 16, 16);
}
if (checkwho[i][j] == 2) {
tempx = i*16+190;
tempy = j*16+110;
g.setColor(Color.black);
g.drawOval(tempx-8, tempy-8, 16, 16);
g.setColor(Color.white);
g.fillOval(tempx-8, tempy-8, 16, 16);
}
  }
}
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub

}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
//System.out.println("x = "+e.getX());
//System.out.println("y = "+e.getY());
x = e.getX();
y = e.getY();

if (x>=190 && x<=478 && y>=110 && y<=398) {
//JOptionPane.showMessageDialog(this, "鼠标在棋盘范围内!");
int i;
int j;
i = (x-190)/16;
j = (y-110)/16;
checkwho[i][j] = 1;
//JOptionPane.showMessageDialog(this, "x:"+i+"y:"+j+"checkwho[x][y]:"+checkwho[i][j]);
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 class FiveChess {
public static void main(String[] args) {
FiveChessJFrame ff = new FiveChessJFrame();
}
}


[解决办法]
int[][] checkwho = new int[19][19];


for(int i = 1; i <= 19 ; i++){
for(int j = 1; j <= 19; j++) {
int tempx;
int tempy;
if (checkwho[i][j] == 1) {

当你循环取到checkwho[1][19]的时候就数组溢出了。。。

根据业务更改数组的length或者循环的size。。。


热点排行