2017-08-17 55 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

我检查过,但我没有使用它的效率,因为我想。但我会再次检查那个例子。谢谢安东尼... –