在java swing中从控制器获取当前登录用户

时间:2014-08-27 15:51:46

标签: java swing

我试图在基于MVC的swing应用程序中从Controller.java中取出当前登录的用户。用户存储在txt文件中(int id,String name,String address,boolean isAdmin)

在控制器中创建了一个方法

public void addListeners(){

    loginListener=new ActionListener(){

        public void actionPerformed(ActionEvent e){
            String username=view.getLogin().getLoginUsername().getText();
            char[] password = view.getLogin().getLoginPassword().getPassword();


            String pass="";
            for(int i=0;i<password.length;i++){
                pass+=password[i];
            }

            System.out.println("Username "+username+",password "+pass);
            boolean correctUser=false;
            boolean admin=false;
            for(User user : model.getShop().getUsers()){
                if(username.equals(user.getUsername()) && pass.equals(user.getPassword())){
                    correctUser=true;
                    admin=user.isAdmin();
                    break;
                }   
            }
            if(correctUser){
                view.changeToMaineMenu();
                view.getMainmenu().addTabs(admin);
            }
            else
                System.out.println("Not a valid user");


            view.getLogin().getLoginUsername().setText("");
            view.getLogin().getLoginPassword().setText("");
            viewSuppliers();
        }

    };

我想创建特殊的用户操作取决于谁被记录:用户或管理员即。仅为管理员创建新客户。

我不知道如何访问它。任何帮助高度赞赏。

在摇摆中以mvc存储​​已记录用户的推荐方法是什么?

1 个答案:

答案 0 :(得分:2)

  

我想创建特殊的用户操作取决于谁被记录:user或admin ie。仅为管理员创建新客户。

我认为Singleton pattern中举例说明this answer可能会帮助您将登录用户保持为“全局”状态。然后,您可以询问用户的角色(管理员或简单用户),以便添加您需要的特殊操作。

我开始将所有用户数据包装在域类(简单POJO)中,然后实现SessionManager