0

我正在为一堂课编写抛硬币程序。我在使文本在每个网格中居中时遇到问题。网格布局为 3 x 3,但每个网格中的文本“H”或“T”左对齐。这是创建网格的代码。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class Lab3Panel extends JPanel {

    Lab3Panel() {
        setLayout(new GridLayout(3, 3, 1, 1));

        Lab3Label[] label = new Lab3Label[9];
        label.setHorizontalTextPosition(SwingConstants.CENTER);
        label.setVerticalTextPosition(SwingConstants.CENTER);

        for (int i = 0; i < 9; i++) {
            label[i] = new Lab3Label(i);
            add(label[i]);
        }
    }
}

我得到的错误是:

Lab3Panel.java:15: error: cannot find symbol label.setHorizontalTextPosition(SwingConstants.CENTER);
                                                  ^
4

1 回答 1

5

您正在调用setHorizontalTextPosition数组对象的方法,而您应该在其条目之一上调用它。

就像是:label[0].setHorizontalTextPosition

但是为了能够编译上述语句,该类Lab3Label必须从它的超类之一定义或继承该方法setHorizontalTextPosition

我认为这是你需要的:

Lab3Label[] label = new Lab3Label[9];
for (int i = 0; i < 9; i++) {
    label[i] = new Lab3Label(i);
    label[i].setHorizontalTextPosition(SwingConstants.CENTER);
    label[i].setVerticalTextPosition(SwingConstants.CENTER);
    add(label[i]);
}
于 2013-02-27T01:08:54.730 回答