根据视频做的程序,完全一样的代码,死活运行不出来。求大神解答。
JAVA代码如下:
package com.five;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
public class test extends Frame {
static Point[][] points = new Point[20][20];
static{
//就是下面这三行
points[0][0]=new Point(50,50);
points[0][1]=new Point(50,50);
points[0][2]=new Point(50,50);
}
public void paint(Graphics g){
for(int i=0;i<points.length;i++){
g.drawLine(points[i][0].getX(), points[i][0].getY(), points[i][19].getX(), points[i][19].getY());
}
}
private void launchFrame(){
this.setSize(500,500);
this.setLocation(200,100);
this.setBackground(Color.gray);
this.setTitle("五子棋");
this.setVisible(true);
this.setResizable(false);
}
public static void main(String[] args) {
new test().launchFrame();
}
}
你代码中这一行有问题:
g.drawLine(points[i][0].getX(), points[i][0].getY(), points[i][19].getX(), points[i][19].getY());
drawLine()方法里面要传4个int类型的参数,而你传的是double类型的,改成如下的就可以运行了:
g.drawLine((int)points[i][0].getX(), (int)points[i][0].getY(), (int)points[i][19].getX(), (int)points[i][19].getY());