编译错误:“找不到符号”

时间:2013-02-27 01:06:54

标签: java

我正在为一堂课写一个硬币翻转程序。我在将文本放在每个网格中心时遇到问题。网格布局为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);
                                                  ^

1 个答案:

答案 0 :(得分: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]);
}