2016-10-06 3 views
2

나는 3 개의 클래스가 있습니다. Window 클래스는 GUI 구성 요소를 포함하고 설정해야합니다. 프레임에 패널을 추가하고 싶지만 아래 코드는 작동하지 않는 것 같습니다. 이것은 컴파일 오류 메시지입니다 :프레임에 다른 클래스의 패널 추가

오류 : 기호를

기호를 찾을 수 없습니다 : 변수 getPanel

위치 : 나는 프레임에 패널을 추가하려면 어떻게

class Window { 
    Frame myFrame = new Frame(); 
    Panel myPanel = new Panel(); 

    void run() { 
     myFrame.build(); 
     myPanel.build(); 
    } 

    public static void main(String[] args) { 
     (new Window()).run(); 
    } 
} 

class Frame { 
    JFrame frame; 

    Panel myPanel = new Panel(); 

    void build() { 
     frame = new JFrame("Frame"); 

     frame.add(button, BorderLayout.SOUTH); 
     frame.add(myPanel.getPanel); //compilation error: cannot find symbol 

     frame.setSize(500, 400); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setVisible(true); 
    } 
} 

class Panel extends Frame { 
    private JPanel panel; 

    void build() { 
    panel = new JPanel(); 
    } 

    public JPanel getPanel() { 
     return panel; 
    } 
} 

그래서 형 패널의 변수 myPanel ?

답변

1

getPanel() 메서드를 호출하려고 시도했지만 단순히 getPanel을 입력하여 호출하려고했습니다.

괄호가 누락되었습니다. 변수에 액세스하는 대신 메서드를 호출하고 있음을 나타냅니다.

변경이 줄이에

frame.add(myPanel.getPanel); 

는 :

또한
frame.add(myPanel.getPanel()); 

, 미래에 당신이 중요하다고 전체 오류 메시지뿐 아니라 조각을 포함해야합니다. 이렇게하면 문제를 빨리 찾아내어보다 빨리 도움을받을 수 있습니다.

+0

고맙습니다. 작동합니다! 하지만 지금은 새로운 문제가 있습니다. 새로운 오류 메시지는 다음과 같습니다. java.lang.StackOverflowError \t Panel에서. (RandomArtist.java:40) \t at Frame. (RandomArtist.java:25) \t at Panel. (RandomArtist.java:40) \t at Frame. (RandomArtist.java:25) – oolongtea

+0

아마도이 오류에 대한 새로운 질문을 만들어야 우리가 더 많은 것을 도울 수 있습니다 –

관련 문제