2017-08-17 139 views
0

我想開發一個Swing桌面應用程序,但如果我單擊登錄按鈕,它不會轉到下一頁。任何人都幫助我?下面如何在JFrame頁面授權登錄後進入下一個JPanel頁面?

ActionListener代碼:

private void loginAddActionListener(java.awt.event.ActionEvent evt) {       

    int count = 0; 
    try { 
     String sql = "SELECT * FROM tbl_name WHERE username=? AND password=?"; 
     c = ConnectionKimyaLab.getConnection(); 
     ps = c.prepareStatement(sql); 
     ps.setString(1, username.getText()); 
     ps.setString(2, password.getText()); 
     rs = ps.executeQuery(); 

     while (rs.next()) { 
      count = count + 1; 
     } 

     if (count == 1) { 
      JOptionPane.showMessageDialog(null, "Correct", "Main Page Title", JOptionPane.INFORMATION_MESSAGE); 
      Next_JPanel = new Next_JPanel(); 
      k.setVisible(true); 
     } else { 
      JOptionPane.showMessageDialog(null, "Incorrect", "Main Page Title", JOptionPane.WARNING_MESSAGE); 
     } 
    } catch (HeadlessException | SQLException e) { 
     JOptionPane.showMessageDialog(null, e); 
    } finally { 
     try { 
      rs.close(); 
      ps.close(); 
      //conn.close(); 
     } catch (Exception e) { 
     } 
    } 
} 
+0

'Next_JPanel = new Next_JPanel();'<<這是非常容易出錯的變量被稱爲像他們的類。變量應以小寫字母開頭。 – Berger

+0

1)使用['CardLayout'](http://download.oracle.com/javase/8/docs/api/java/awt/CardLayout.html),如[本答案]中所示(http:// stackoverflow的.com /一個/418556分之5786005)。 2)爲了更快地獲得更好的幫助,請發佈[MCVE]或[簡短,獨立,正確的示例](http://www.sscce.org/)。 3)請學習常用的Java命名規則(命名約定 - 例如'EachWordUpperCaseClass','firstWordLowerCaseMethod()','firstWordLowerCaseAttribute',除非它是'UPPER_CASE_CONSTANT')並且一致地使用它。 –

+0

感謝安德魯湯普森和即時通訊使用camelCase命名,但我想告訴你,代碼 –

回答

1

你應該籤Java提供的CardLayout例如:

https://docs.oracle.com/javase/tutorial/uiswing/layout/card.html

它可以幫助你準備好多個用戶界面同時在同一容器中,但在任何時候只能看到一個。

+0

我檢查過,但我沒有使用它的效率,因爲我想。但我會再次檢查那個例子。謝謝安東尼... –