MyFrameという名前のJFrameがあります
コンストラクターMyFrame()
にはif条件があります
MyFrame() {
if(condition) {
openFrame();
}
}
条件が真でない場合、フレームを開きたくありません。それでも空白のフレームが開きます。
condition
問題は、新しい を作成するプロセスに入るまでチェックしないことですMyFrame
。条件が false の場合、openFrame()
コンテンツを追加すると思われる をスキップしますが、MyFrame
はまだ存在します。おそらく、if
呼び出しているものの周りにステートメントを配置する必要がありnew MyFrame()
ます。
の状態を避けるようにしてくださいconstructor
。
最も好ましい方法は
if (condition) {
MyFrame frame = new MyFrame();
}
初期化後JFrame
にif
状態を確認するのではなく、状態を初期化することで問題が解決します。
この条件付きチェックは、コンストラクターの外側で必要です。その条件が満たされている場合は、フレームを作成したくないので、最初からフレームを作成する必要はありません。
どこかで setVisible(true) を MyFrame オブジェクトに呼び出したため、それがフレームを表示する唯一のメソッド呼び出しです。