Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何根据登录信息为员工或经理显示不同的JFrame_Java_Mysql_Database_Swing_Netbeans - Fatal编程技术网

Java 如何根据登录信息为员工或经理显示不同的JFrame

Java 如何根据登录信息为员工或经理显示不同的JFrame,java,mysql,database,swing,netbeans,Java,Mysql,Database,Swing,Netbeans,好的,我正在使用sqlworkbench上的mysql数据库在netbeans上创建java应用程序,我在数据库中创建了一个登录jframe和一个登录表。检查用户名和密码是否存在于数据库中,如果为true,则继续执行,并显示employee jframe。如果经理输入用户名和密码,我如何使其显示不同的jframe。我应该在登录信息表中添加一列,确定该帐户是员工帐户还是经理帐户。但是当点击登录框架上的按钮时,它怎么知道呢?除了这样一个查询之外,我应该这样做,但它将如何比较,然后显示例如employ

好的,我正在使用sqlworkbench上的mysql数据库在netbeans上创建java应用程序,我在数据库中创建了一个登录jframe和一个登录表。检查用户名和密码是否存在于数据库中,如果为true,则继续执行,并显示employee jframe。如果经理输入用户名和密码,我如何使其显示不同的jframe。我应该在登录信息表中添加一列,确定该帐户是员工帐户还是经理帐户。但是当点击登录框架上的按钮时,它怎么知道呢?除了这样一个查询之外,我应该这样做,但它将如何比较,然后显示例如employee的jframe是否命名为jframe1,manager的jframe是否命名为jframe2

        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我的肚子里满是鳗鱼