Итак, сначала Я знаю, почему Я получаю эту ошибку, но просто не могу ее решить.Java, StackOverflowError при расширении класса или создании экземпляра
У меня есть пара классов, основной класс, класс макета и класс buttonClick.
Проблема в классе buttonClick: у меня есть некоторые переменные в моем классе макета, которые я должен использовать в своем классе buttonClick.
Это мой Компоновка класс:
public class Layout extends JPanel {
public JButton BTN_werpen;
public Layout{
BTN_werpen = new JButton("Werpen");
BTN_werpen.setBounds(465, 10, 80, 30);
BTN_werpen.addActionListener(new WerpButton());
P_velden.add(BTN_werpen);
}
Конечно, это не полный класс, но это все, что вам нужно знать.
у меня «WerpButton» actionListner класс:
public class WerpButton extends Layout implements ActionListener {
BTN_werpen.setEnabled(false);
}
Опять же, это не все, но это уже не удается, когда я просто использовать код здесь. И я знаю, почему это не удается: это потому, что когда класс Layout расширяется, конструктор получает вызов, и он создаст новый объект, который запускает класс WerpButton, который затем вызывает класс Layout, и так далее. Он в основном становится петлей.
Теперь мой вопрос:
Как решить эту проблему?
Я пробовал много уже, как не распространяющие его, а просто использовать Layout layout = new Layout();
А затем с помощью layout.BTN_werpen
в моем коде, но это не работает тоже.
У вас есть круговая зависимость. Каждый подтип неявно выдает вызов конструктору родительского класса. –
Да, я знаю.Но как его решить, чтобы я мог использовать 'BTN_werpen' в моем другом классе? –