添加(GObject obj)方法不会在applet上绘制对象

时间:2014-02-09 23:11:56

标签: java methods graphics applet acm-java-libraries

这是我的代码,它只是Tic Tac Toe游戏程序的一小部分。这部分应该在applet上绘制板,但每次都没有出现。

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,但没有成功。

2 个答案:

答案 0 :(得分:0)

来自run()的文档:

  

指定程序运行时要执行的代码。对于具有即使在没有用户操作的情况下运行的控制线程的应用程序,也需要run方法,例如使用控制台交互或涉及动画的程序。通过设置初始配置然后等待用户事件来操作的基于GUI的程序通常不指定run方法,而是为init提供新定义。

我读到这意味着它只会在应用程序中被调用。根据{{​​1}}(Thread)创建GraphicsProgram并明确调用Runnable

将其更改为Thread.start(),它应该有效。加载applet的Java虚拟机显式调用init()方法。

答案 1 :(得分:0)

经过几个小时无意义的代码调整后,我发现通过在run方法中定义高度和宽度变量,电路板显示得很好。