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 オブジェクトに呼び出したため、それがフレームを表示する唯一のメソッド呼び出しです。