英文:
adding Glabel to form a triangle java program
问题
以下是您的代码的翻译部分:
这是我的代码:
public class test extends GraphicsProgram {
private static final int LABELGAP = 30;
private static final int LINEGAP = 20;
int numLabel = 1;
double y = 75;
public void run() {
for (int i = 0; i < 8; i++) {
GLabel label = new GLabel("Hello World");
label.setFont("London-12");
double x = (getWidth() - label.getWidth() * numLabel - LABELGAP * (numLabel -1)) / 2;
double step = label.getWidth() + LABELGAP;
for (int j = 0; j < numLabel; j++) {
add(label, x, y);
x += step;
}
numLabel++;
y += LINEGAP;
}
}
}
但是每行只有一个标签。问题出在哪里?
我希望每一行都比上一行多一个标签。
而且,如果我将以下代码放在第二个for循环之外:
GLabel label = new GLabel("Hello World");
label.setFont("London-12");
double x = (getWidth() - label.getWidth() * numLabel - LABELGAP * (numLabel -1)) / 2;
double step = label.getWidth() + LABELGAP;
与将它们放在内部不同,结果也不同(都不是所需的结果)。为什么?
英文:
Here is my code:
public class test extends GraphicsProgram {
private static final int LABELGAP = 30;
private static final int LINEGAP = 20;
int numLabel = 1;
double y = 75;
public void run() {
for (int i = 0; i < 8; i++) {
GLabel label = new GLabel("Hello World");
label.setFont("London-12");
double x = (getWidth() - label.getWidth() * numLabel - LABELGAP * (numLabel -1)) / 2;
double step = label.getWidth() + LABELGAP;
for (int j = 0; j < numLabel; j++) {
add(label, x, y);
x += step;
}
numLabel++;
y += LINEGAP;
}
}
}
But there is only one label per line. What's wrong?
I want to have one more label than previous line.
Also, if I put
GLabel label = new GLabel("Hello World");
label.setFont("London-12");
double x = (getWidth() - label.getWidth() * numLabel - LABELGAP * (numLabel -1)) / 2;
double step = label.getWidth() + LABELGAP;
This part of the code outside of 2nd for loop, the result is different from when I put them inside(neither is the desired result). Why?
专注分享java语言的经验与见解,让所有开发者获益!
评论