Моя ситуация: у меня есть класс MainScreen, который расширяет JFrame (на самом деле это просто JFrame с основным методом для запуска приложения), в котором я добавил класс GameManager, который расширяет JLayeredPane, который я использую для отображения чего-либо.
public static void main(String[] args) {
MainScreen ms = new MainScreen();
}
public MainScreen() {
this.initScreen();
this.gm = new GameManager();
this.add(gm, BorderLayout.CENTER);
this.setVisible(true);
}
Теперь я хочу добавить из класса GameManager кнопку JButton в основной JFrame. Я думал, что это будет легко, просто сделайте:
JButton button = new JButton("Hello");
this.getParent().add(button, BorderLayout.SOUTH);
но getParent() возвращает null, поэтому, очевидно, это не работает. Я не знаю, почему, я делал что-то подобное раньше (хотя и с JComponent и JPanel), и я думал, что каждый JComponent при добавлении в контейнер будет иметь контейнер в качестве своего родителя. Что я пропустил?
this.getParent().add(button, BorderLayout.SOUTH);
существует вGameManager.java
? внутри конструктора? - person Sanjeev Saha   schedule 26.06.2016