drawString()奇怪地显示一个随机整数

时间:2014-01-15 14:19:28

标签: java random

我正在制作一个随机的线生成器以获得乐趣,当我运行该程序时,“Y(End):”字符串看起来很奇怪。数字显示为矩形符号,没有任何意义。

这是我的代码:

public class LineFractal extends Applet {
Random random = new Random();
int width = 640;
int height = 640;
int x = 1000;
int endy1 = random.nextInt(width/2);
int endx1 = random.nextInt(width/2);
int starty1 = random.nextInt(width/2);
int startx1 = random.nextInt(width/2);
int space = random.nextInt(25);
public void init() {
    setSize(width, height);
    Frame c = (Frame)this.getParent().getParent();
    c.setTitle("Line Generator");
}
public void paint(Graphics g) {
    while (x > 0) {
        x -= 1;
        g.drawLine(startx1, starty1, endx1, endy1);
        g.drawString("Space: " + space, width-100, height-10);
        g.drawString("Y (End): " + endy1, width-100, height-20);
        endy1 += space;
        endx1 -= space;
    }
}
}

为什么会这样做?

编辑:刚试了一次程序,y实际上正确显示了一次。但后来我又跑了,只能看到最后一个号码。我最后一次运行它时,没有可读的数字......

2 个答案:

答案 0 :(得分:1)

您似乎正在打印字符串Y (End),然后在其顶部打印一次数字1000次。显然,对于文本来说没问题,但数字部分会很快变得混乱!想象一下,将0 1 2 3 4 5 6 7 8 9全部放在一起。

你可能意味着将一个白色(或任何背景颜色)填充的矩形绘制到要打印字符串的区域,只是为了清除那些已经存在的区域。

答案 1 :(得分:0)

我通过将两个drawString()置于while循环之外来修复它。