Guest User

Untitled

a guest
Oct 7th, 2018
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.94 KB | None | 0 0
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4. import javax.swing.event.*;
  5. import java.util.HashMap;
  6.  
  7. public class LoginValidate extends JFrame {
  8.  
  9. //db存放用户名和喜闻乐见的明文密码
  10. private HashMap<String, String> db;
  11.  
  12. //GUI各种界面元素
  13. private JFrame mainFrame;
  14. private Container mainContentPane;
  15. private JTextArea resultTextArea;
  16. private JLabel usernameLabel;
  17. private JTextField usernameField;
  18. private JLabel passwordLabel;
  19. private JPasswordField passwordField;
  20. private JButton submitButton;
  21.  
  22. //构造函数会建立用户数据库和GUI,并显示
  23. LoginValidate(){
  24. buildDB();
  25. buildUI();
  26. }
  27.  
  28. //建立用户数据库
  29. private void buildDB(){
  30. //用HashMap存放用户名和密码的键值对
  31. db = new HashMap<String, String>();
  32. //添加两个用户做为测试
  33. db.put("admin", "nimda");
  34. db.put("user", "password");
  35. }
  36.  
  37. private void buildUI(){
  38. //主窗口
  39. mainFrame = new JFrame("Login");
  40. mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  41. //设置窗口大小
  42. mainFrame.setPreferredSize(new Dimension(400, 300));
  43.  
  44. //使用FlowLayout
  45. mainContentPane = mainFrame.getContentPane();
  46. mainContentPane.setLayout(new FlowLayout());
  47.  
  48. //显示结果的文本框
  49. resultTextArea = new JTextArea();
  50. resultTextArea.setPreferredSize(new Dimension(300, 60));
  51. resultTextArea.setEditable(false);
  52. mainContentPane.add(resultTextArea);
  53.  
  54. //用户名标签
  55. usernameLabel = new JLabel("Username:");
  56. usernameLabel.setPreferredSize(new Dimension(300, 30));
  57. mainContentPane.add(usernameLabel);
  58.  
  59. //输入用户名
  60. usernameField = new JTextField();
  61. usernameField.setPreferredSize(new Dimension(300, 30));
  62. mainContentPane.add(usernameField);
  63.  
  64. //密码标签
  65. passwordLabel = new JLabel("Password:");
  66. passwordLabel.setPreferredSize(new Dimension(300, 30));
  67. mainContentPane.add(passwordLabel);
  68.  
  69. //输入密码
  70. passwordField = new JPasswordField();
  71. passwordField.setPreferredSize(new Dimension(300, 30));
  72. mainContentPane.add(passwordField);
  73.  
  74. //登录按钮
  75. //点击调用loginAction,loginAction验证登录
  76. submitButton = new JButton(loginAction);
  77. submitButton.setPreferredSize(new Dimension(300, 30));
  78. mainContentPane.add(submitButton);
  79.  
  80. mainFrame.pack();
  81. //显示
  82. mainFrame.setVisible(true);
  83. }
  84.  
  85. //登录动作
  86. Action loginAction = new AbstractAction("Login") {
  87. public void actionPerformed(ActionEvent e) {
  88. //获得各自输入
  89. String usernameInput = usernameField.getText();
  90. String passwordInput = passwordField.getText();
  91. //在db中查找
  92. String realPassword = db.get(usernameInput);
  93.  
  94. //设置结果的文本框
  95. String outputString = "Username: " + usernameInput + "\n";
  96. if (realPassword != null && realPassword.equals(passwordInput)) {
  97. outputString += "Success";
  98. } else {
  99. outputString += "Fail";
  100. }
  101. resultTextArea.setText(outputString);
  102. }
  103. };
  104.  
  105. public static void main(String[] args) {
  106. LoginValidate app = new LoginValidate();
  107. }
  108. }
Add Comment
Please, Sign In to add comment