2016-10-06 3 views
2

У меня есть 3 класса. Класс Window должен содержать и настраивать компоненты GUI. Я хочу добавить панель в кадр, но приведенный ниже код не работает. Это сообщение об ошибке компиляции:Добавление панели из другого класса в рамку

Ошибка: не удается найти символ

символа: переменную getPanel

местоположения: переменная MyPanel типа панели

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; 
    } 
} 

Так как же я могу добавить панель в рамку ?

ответ

1

Вы пытаетесь вызвать метод getPanel(), но вы попробовали позвонить, просто набрав getPanel.

Вам не хватает скобки, которая указывает, что вы вызываете метод, а не просто получаете доступ к переменной.

Изменить эту строку:

frame.add(myPanel.getPanel); 

к этому:

frame.add(myPanel.getPanel()); 

Кроме того, в будущем обязательно включать все сообщение об ошибке, а не только части, которые Вы считаете важными. Это поможет нам быстро найти проблему и, следовательно, сможет помочь вам раньше.

+0

Спасибо, это работает! Однако у меня есть новая проблема. Новое сообщение об ошибке, которое я получаю после запуска: java.lang.StackOverflowError \t на панели. (RandomArtist.java:40) \t at Frame. (RandomArtist.java:25) \t на панели. (RandomArtist.java:40) \t at Frame. (RandomArtist.java:25) – oolongtea

+0

Возможно, вам стоит создать новый вопрос об этой ошибке, чтобы мы могли помочь больше –

Смежные вопросы