2013-02-27 5 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]); 
     } 
    } 
} 

내가 점점 오전 오류 : 당신은 그것의 항목 중 하나에 호출되어야하는 동안이 배열 객체에 setHorizontalTextPosition 메소드를 호출하고

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

답변

5

. 같은

뭔가 : 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

당신은 루프의 내부의 방법을 이동하는 말 :

나는 이것이 당신이 필요로하는 무슨 생각? –

+0

"Lab3Label"인스턴스는 클래스가'JPanel' 대신'JLabel'을 확장해야합니다. " 코드에서 'Lab3Label'이'JLabel'에서 확장되지 않는다고 언급하지 않았습니다. – GeneSys

+0

지적 해 주셔서 감사합니다. 나는 나의 대답을 업데이트 할 것이다. –

관련 문제