さて、最初に私はこの理由を知っています私はこのエラーを取得していますが、それを解決する方法はありません。クラスを拡張する、またはインスタンス化するときに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);
}
、これがすべてではないが、私はちょうどここにコードを使用するときには、すでに失敗します。なぜそれが失敗するのか分かります。レイアウトクラスが拡張されると、コンストラクタが呼び出され、WerpButtonクラスをトリガする新しいオブジェクトが作成され、レイアウトクラスが呼び出されるなどです。それは基本的にループになります。
私の質問は次のとおりです。
この問題を解決するにはどうすればよいですか?
は、私は私のコードでlayout.BTN_werpen
を使用して、それを拡張するが、ちょうどLayout layout = new Layout();
を使用しないように、たくさんすでに を試みたが、それはあまりにも動作しません。
循環依存関係があります。各サブタイプは、親クラスのコンストラクタを暗黙的に呼び出します。 –
はい、私は知っています。しかし、他のクラスで 'BTN_werpen'を使用できるように、どうすれば解決できますか? –