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