これは、サブクラスがスーパークラスコンストラクターを継承しているため、別のウィンドウを作成しているために発生していますか?
はい。を拡張するJFrame
と、が得られますJFrame
。
super()
super(...)
または自分自身を呼び出さない限り、常に自分のコンストラクターの前に暗黙的に呼び出されthis(...)
ます。これは、独自のコンストラクターでの最初の呼び出しである必要があります。
その動作が本当に必要な場合は、次のDeck
ように基本クラス()に別のコンストラクターを作成できます。
public class Deck extends JFrame {
public Deck(boolean createContent) {
if( createContent ) {
getContentPane().add(...);
// ...
}
}
public Deck() {
this(true);
}
}
public class Pile extends Deck {
public Deck() {
super(false);
// ...
}
}
JFrame
それを拡張するので、それでも最終的にはaになりますが、 Deck
-classの子コンポーネントは作成されません。
なぜこれを実行したいかわからないので、明確にするためにさらに情報を追加できるかもしれません。