Java 如何根据登录信息为员工或经理显示不同的JFrame
好的,我正在使用sqlworkbench上的mysql数据库在netbeans上创建java应用程序,我在数据库中创建了一个登录jframe和一个登录表。检查用户名和密码是否存在于数据库中,如果为true,则继续执行,并显示employee jframe。如果经理输入用户名和密码,我如何使其显示不同的jframe。我应该在登录信息表中添加一列,确定该帐户是员工帐户还是经理帐户。但是当点击登录框架上的按钮时,它怎么知道呢?除了这样一个查询之外,我应该这样做,但它将如何比较,然后显示例如employee的jframe是否命名为jframe1,manager的jframe是否命名为jframe2Java 如何根据登录信息为员工或经理显示不同的JFrame,java,mysql,database,swing,netbeans,Java,Mysql,Database,Swing,Netbeans,好的,我正在使用sqlworkbench上的mysql数据库在netbeans上创建java应用程序,我在数据库中创建了一个登录jframe和一个登录表。检查用户名和密码是否存在于数据库中,如果为true,则继续执行,并显示employee jframe。如果经理输入用户名和密码,我如何使其显示不同的jframe。我应该在登录信息表中添加一列,确定该帐户是员工帐户还是经理帐户。但是当点击登录框架上的按钮时,它怎么知道呢?除了这样一个查询之外,我应该这样做,但它将如何比较,然后显示例如employ
String sql;
String S=jTextField1.getText();
String S1=jPasswordField1.getText();
String S3=jComboBox1.getSelectedItem().toString();
sql="SELECT * from user_pass where username='"+S+"' and password='"+S1+"' and type='"+S3+"'";
ResultSet rs=stmt.executeQuery(sql);
if(rs.next()){
您可以尝试下面这样的解决方案。代码不完整,但将帮助您找到解决方案
public class MySqlApp extends JFrame
{
CardLayout cardLayout = new CardLayout();
JPanel main = new JPanel();
JPanel employee = new JPanel();
JPanel manager = new JPanel();
public MySqlApp()
{
setLayout(new BorderLayout());
main.setLayout(cardLayout);
main.add(employee, "employee");
main.add(manager, "manager");
add(main, BorderLayout.CENTER);
String sql="SELECT * from user_pass where username='"+S+"' and password='"+S1+"' and type='"+S3+"'";
ResultSet rs=stmt.executeQuery(sql);
if(rs.next())
{
if("manager".equalsIgnoreCase(rs.getString("AccountType")))
{
cardLayout.show(main, "manager");
}
else
{
cardLayout.show(main, "employee");
}
}
}
}
您可以尝试下面这样的解决方案。代码不完整,但将帮助您找到解决方案
public class MySqlApp extends JFrame
{
CardLayout cardLayout = new CardLayout();
JPanel main = new JPanel();
JPanel employee = new JPanel();
JPanel manager = new JPanel();
public MySqlApp()
{
setLayout(new BorderLayout());
main.setLayout(cardLayout);
main.add(employee, "employee");
main.add(manager, "manager");
add(main, BorderLayout.CENTER);
String sql="SELECT * from user_pass where username='"+S+"' and password='"+S1+"' and type='"+S3+"'";
ResultSet rs=stmt.executeQuery(sql);
if(rs.next())
{
if("manager".equalsIgnoreCase(rs.getString("AccountType")))
{
cardLayout.show(main, "manager");
}
else
{
cardLayout.show(main, "employee");
}
}
}
}
使用CardLayout交换视图,类似于。您可以使用与CardLayout show constant相同的字符串作为登录类型,也可以根据需要使用映射来映射字符串。所有小写字母键入的单词都很难阅读,就像试图听某人喃喃自语一样。请在句子的开头使用大写字母,用于单词I和专有名称,如
ArrayList
或Oracle。基本上,您需要做一些事情,您需要确定用户可以做什么,您可以创建一个用户对象作为验证过程的一部分,或者使用用户的ID查询数据库(可以从验证器返回)。然后,您需要使用某种控制器来决定应该向用户显示哪些视图。这将使您进入MVC领域,它可以让您定义用户和管理者的导航模型,从而减少代码重复、解耦代码并提高代码重用能力。使用@Hovercraf使用CardLayout(类似于)填充EelsSwap视图。您可以使用与CardLayout show constant相同的字符串作为登录类型,也可以根据需要使用映射来映射字符串。所有小写键入的单词都很难阅读,就像试图听某人喃喃自语一样。请在句子开头使用大写字母d I和专有名称,如ArrayList
或Oracle。基本上,您需要做一些事情,您需要确定用户可以做什么,您可以创建一个用户对象作为验证过程的一部分,或者使用用户的I ID查询数据库(可以从验证器返回)。然后,您需要使用某种控制器来决定应该向用户显示哪些视图。这将使您进入MVC领域,它可以让您定义用户和管理者的导航模型,从而减少代码重复、解耦代码并提高代码重用能力。使用@Hovercraf我的肚子里满是鳗鱼