我正在制作一个随机的线生成器以获得乐趣,当我运行该程序时,“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实际上正确显示了一次。但后来我又跑了,只能看到最后一个号码。我最后一次运行它时,没有可读的数字......
答案 0 :(得分:1)
您似乎正在打印字符串Y (End)
,然后在其顶部打印一次数字1000次。显然,对于文本来说没问题,但数字部分会很快变得混乱!想象一下,将0 1 2 3 4 5 6 7 8 9全部放在一起。
你可能意味着将一个白色(或任何背景颜色)填充的矩形绘制到要打印字符串的区域,只是为了清除那些已经存在的区域。
答案 1 :(得分:0)
我通过将两个drawString()
置于while
循环之外来修复它。