这是我的代码,它只是井字游戏程序的一小部分。这部分应该在小程序上绘制板,但每次都没有出现。
import acm.program.*;
import acm.graphics.*;
import java.awt.*;
public class TTTb extends GraphicsProgram {
private double Height = getHeight();
private double Width = getWidth();
private static int col_num = 3;
private static int row_num = 3;
public void run() {
GLine Border1 = new GLine(0, Height/3, Width, Height/3);
GLine Border2 = new GLine(0, Height*2/3, Width, Height*2/3);
GLine Border3 = new GLine(Width/3, 0, Width/3, Height);
GLine Border4 = new GLine(Width*2/3, 0, Width*2/3, Height);
add(Border1);
add(Border2);
add(Border3);
add(Border4);
}
}
我也尝试过其他Gobjects,但没有成功。
来自run()
的文档:
指定程序运行时要执行的代码。对于具有即使在没有用户操作的情况下也能运行的控制线程的应用程序(如使用控制台交互或涉及动画的程序),需要
run
方法。基于 GUI 的程序通过设置初始配置然后等待用户事件来运行,通常不指定run
方法,而是为init
提供新定义。
我读到这意味着只有当应用程序基于GraphicsProgram
(Runnable
)创建Thread
并显式调用Thread.start()
时才会调用它。
将其更改为init()
,它应该可以工作。init
方法由加载小程序的 Java 虚拟机显式调用。
经过数小时的毫无意义的代码调整,我发现通过在run方法中定义高度和宽度变量,电路板显示得很好。