Закрытие Jform в конструкторе

У меня небольшая проблема с кодом. Я просто хочу, чтобы Jform не отображался, если условие не выполняется в части конструктора формы. Снаружи конструктора dispose (), return и setVisible(false) все работают нормально. Я пробовал this.dispose(); и вернуться; и this.setVisible(false); но форма все еще отображается. С System.exit(0); он закрывает полное приложение. Буду очень признателен, если кто-то может мне помочь с этим.

public class OrderGUI extends javax.swing.JFrame {

public OrderGUI(Customer cust, Date dt, Time t) throws FileNotFoundException, IOException, ClassNotFoundException {
    this();
if(condition)
{
/////do not initialize the Jform
}else{//// run rest of the code}
}

2 ответа

Решение

Сделать что-то подобное

public class OrderGUI extends javax.swing.JFrame {
    public OrderGUI(Customer cust, Date dt, Time t) throws FileNotFoundException, IOException, ClassNotFoundException {
       this();
    }

   @Override
   public void setVisible(boolean val){
       if(!condition){
           super.setVisible(val);
       } 
   }
}

Как указал Субаш, это прекрасно работает.

public class OrderGUI extends javax.swing.JFrame {
public OrderGUI(Customer cust, Date dt, Time t) throws FileNotFoundException, IOException, ClassNotFoundException {
   this();
}

@Override
public void setVisible(boolean val){
   if(!condition){
       super.setVisible(val);
   } 
}
}
Другие вопросы по тегам