2013-11-01 5 views
-5

Хорошо. Я делаю часть программного обеспечения для администрирования, используемого на компьютере. Предоставление пользователям возможности входить в систему и выполнять необходимые операции по их оформлению. Что я до сих пор представляет собой систему массивов всех пользователей с именем пользователя, паролем и разрешением. То, что я хочу сделать, - это окно java swing (которое я уже запрограммировал) и сравнить имя пользователя и пароль из этого окна со всеми массивами и проверить соответствие. Любая помощь будет оценена. Благодарю. Мой код:Имя пользователя и пароль Java из массива

public class Main { 
public static void main(String[]args){ 
    WindowLogin.openWindow(); 
} 
} 

public class Database { 
public static String[] userAdmin = {"admin","admin","10"}; //Username password clearance 
public static String[] userAlexander = {"Alexander","1234","1"}; //Same stuff here 
} 


import javax.swing.*; 

import java.awt.*; 

public class WindowLogin { 
public static void openWindow(){ 
    JFrame f = new JFrame("Login"); 
    JTextField userName = new JTextField(20); 
    JPasswordField password = new JPasswordField(); 
    JPanel info = new JPanel(new GridLayout(2,1,5,5)); 
    JPanel lnPanel = new JPanel(new GridLayout(1,1,5,5)); 
    JButton lnButton = new JButton("Log in"); 
    info.add(userName); 
    info.add(password); 
    lnPanel.add(lnButton); 
    f.setLayout(new FlowLayout()); 
    f.setResizable(false); 
    f.add(info); 
    f.add(lnPanel); 
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    f.pack(); 
    f.setVisible(true); 
} 
} 
+0

возможный дубликат [Jav имя пользователя и пароль с помощью массивов] (http://stackoverflow.com/questions/19725532/java-username-and-password-login-using-arrays) – Lan

+1

Никогда не задавайте тот же вопрос снова, потому что ваш старый закрыт, просмотрите старый и отредактируйте его. – LionC

+0

@LionC: и мне было интересно, где мой комментарий пошел –

ответ

1

Так вы можете достичь этого.

String inputUserName = userName.getText(); //assign the user's input username 
String inputPassword = password.getText(); //assign the user's input password 

if(inputUserName.equals(userAdmin[0]) && inputPassword.equals(userAdmin[1])){ 
    System.out.println("Welcome Admin!"); 
}else if(inputUserName.equals(userAlexander [0]) && inputPassword.equals(userAlexander[1])){ 
    System.out.println("Welcome Alexander!"); 
}else{ 
    System.out.println("Unauthorized access"); 
} 

На другой ноте, рекомендуется создать тип пользователя для объединения информации о пользователе, связанных вместо использования массивов.

+0

Знаете ли вы какой-либо способ помешать мне написать, если для каждого пользователя. –

+1

@ Александр Хансен Он говорит это: вы объединяете информацию вместе в объект. Затем выбросьте эти объекты на карту. И иметь его общий для пользователя: if (usernameMap.contains (inputUserName)) {.......} else {print "неизвестные пользователи"} – Lan

+0

@ Подход jdmaguire хорош. Если вы не хотите вводить объект User или карту, вот еще один способ, но его сложно поддерживать. Поместите массивы в другой массив. 'String [] [] users = {userAdmin, userAlexander};' Итерации по этому массиву. 'for (String [] user: users) {if (inputUserName.equals (user [0] && inputPassword.equals (пользователь [1]))) Sysout (« Welcome ») userFound = true; ломать; } if (! userFound) {sysout («Несанкционированный доступ»)} ' –

1

Во-первых, создать пользователя объект

class User{ 
String username; 
String password; 
boolean isAdmin; 

public User(String username, String password,boolean isAdmin){ 
this.username=username; 
this.password=password; 
this.isAdmin=isAdmin; 
} 
//setters and getters; 
} 

второй, поместите пользователей не в списке, но на карте Map<String,User> userMap где ключ будет имя пользователя, поэтому, когда С.Б. будет войти в систему,

public int logIn(String username, String password) 
{ 
User user = userMap.get(username); 
if (user==null 
{ 
//No User with given username, return error code 1; 
return 1; 
} 

if (password==user.getPassword().equals(password)) 
{ 
//password correct, error code - no error 
return 0; 

} 
//password incorrect return error code 2 
return 2 

} 

теперь все, что нам нужно, чтобы инициализировать ваш database

class Database { 
Map<String,User> userMap = new HashMap(); 

{ 
User admin = new User("admin","admin",true); 
User alex= new User("Alexander","1234",false); 
userMap.put(admin.getName(),admin); 
userMap.put(alex.getName(),alex); 
} 
} 
Смежные вопросы