2013-02-27 151 views
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); 
               ^

回答

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]); 
} 
+0

你说移动的方法的内部进行循环? – 2013-02-27 01:12:54

+0

“'Lab3Label'实例类应该扩展'JLabel'而不是'JPanel'。”没有在代码中提到'Lab3Label'没有从'JLabel'延伸 – GeneSys 2013-02-27 01:24:28

+0

谢谢指出。我会更新我的答案。 – 2013-02-27 01:26:35