2017-01-18 40 views
0

這是我的代碼。我被卡住了開關盒的事情。我試圖完成我的Java界面(控制檯)作業。這個想法是做一個登錄系統。如何返回到Java中的第一個菜單開關案例?

我想知道如何在用戶單擊LOGOUT/LOG OFF時返回到第1個LOGIN菜單(主菜單)。

interface Login{ 
    public void validasi(); 
    public void cekData(); 
} 

class DataLogin implements Login{ 
    private String namaUser1="mhs"; 
    private String pass1="mahasiswa"; 
    private String namaUser2="mahasiswa"; 
    private String pass2="pratikum"; 

    public void setName(String name, String name2){ 
     this.namaUser1 = name; 
     this.namaUser2 = name2; 
    } 
    public String getName(){ 
     return namaUser1; 
    } 
    public String getName2(){ 
     return namaUser2; 
    } 
    public void setPsw(String pass, String pas2){ 
     this.pass1 = pass; 
     this.pass2 = pas2; 
    } 
    public String getPsw(){ 
     return pass1; 
    } 
    public String getPsw2(){ 
     return pass2; 
    } 

這是我的checkData方法。

public void cekData(){ 
     DataLogin u = new DataLogin(); 
     String Nama, Psw, log, mau; 

     Scanner input = new Scanner(System.in); 
     Scanner e = new Scanner(System.in); 
     System.out.print("Username : "); Nama=input.nextLine(); 
     System.out.print("Password : "); Psw=input.nextLine(); 
      if (Nama.equalsIgnoreCase(u.getName())&&Psw.equalsIgnoreCase(u.getPsw())){ 
       System.out.println("(Login Success!)"); 
       System.out.println("-----------------"); 
      do{ 
       System.out.println("Selamat Datang, "+Nama+"!!"); 
       System.out.println("MENU PILIHAN"); 
       System.out.println("A. TEST KENDARAAN"); 
       System.out.println("B. LOG OFF"); 
       System.out.println("-----------------"); 
       System.out.print("Masukkan Pilihan Anda : ");log=input.nextLine(); 
        switch(log){ 
         case "A": case "a": 
          //SOME CODES.. NOT IMPORTANT 
          break; 
         case "B": case "b": 
          System.exit(0); 
          break; 
         default: 
          System.out.println("ERROR, Pilihan Tidak Tersedia"); 
          break; 
        } 

        System.out.print("Mau Coba Lagi? [Y/T] = ");mau = e.next(); 
       }while(mau.equals("Y")||(mau.equals("y"))); 
      } 
      else{ 
       System.out.println("(Login Gagal!)"); 
       System.out.println("Periksa Kembali Username dan Password Anda"); 
       System.out.println("------------------------------------------"); 
      } 

    } 
} 

這是我的主菜單。

class TestLogin{ 
    public static void main(String[] args){ 
     DataLogin u = new DataLogin(); 

     Scanner pil = new Scanner(System.in); 
     String pilih; 

     System.out.println("MAIN MENU"); 
     System.out.println("----------"); 
     System.out.println("MENU PILIHAN"); 
     System.out.println("A. LOGIN"); 
     System.out.println("B. EXIT"); 
     System.out.println("----------"); 

     System.out.print("Masukkan Pilihan Anda : ");pilih=pil.nextLine(); 
     switch(pilih){ 
      case "A": 
      case "a": 
       u.cekData(); 
       break; 
      case "B": 
      case "b": 
       System.exit(0); 
       break; 
      default: 
      {System.out.print("ERROR");} 
     } 
    } 
} 
+0

答案有幫助嗎? –

回答

0

您可以在單獨的方法中移動主菜單,並在用戶註銷時再次調用它。

0

我還沒有嘗試過,但是這應該工作: -

1)包裝你的main()方法的內容爲一個循環。

2)在cekData(),如果用戶選擇註銷,而不是System.exit(),做一個返回。

執行上述操作後,如果用戶選擇註銷,線程將返回到main()方法,該方法將循環並再次顯示自身。

相關問題