Advertisement
Guest User

Untitled

a guest
May 16th, 2016
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.45 KB | None | 0 0
  1. package mice_interactive;
  2.  
  3. import com.sun.glass.events.KeyEvent;
  4. import java.awt.Color;
  5. import javax.swing.JOptionPane;
  6. import oru.inf.InfDB;
  7. import oru.inf.InfException;
  8.  
  9. /**
  10. *
  11. * @author Oliver
  12. */
  13. public class LogIn extends javax.swing.JFrame {
  14.  
  15. private InfDB infDB;
  16. private String databas = System.getProperty("user.dir") + "\\MICEDB.FDB";
  17.  
  18. /**
  19. * Konstruktorn kopplar upp dig mot databasen, sätter fönstret i mitten och
  20. * sätter bakgrundsfärgen till vit.
  21. */
  22. public LogIn() {
  23. initComponents();
  24. // Sätter fönstret i mitten av skärmen
  25. setLocationRelativeTo(null);
  26. //Sätter bakgrundsfärgen på fönstret till vit
  27. getContentPane().setBackground(Color.white);
  28.  
  29. // Hämtar databasen och ger ett meddelande om uppkopplingen av databasen lyckades.
  30. try {
  31. infDB = new InfDB(databas);
  32. System.out.println("Uppkopplingen lyckades");
  33. } catch (InfException e) {
  34. System.out.println(e.getMessage());
  35. }
  36. }
  37.  
  38. /**
  39. * This method is called from within the constructor to initialize the form.
  40. * WARNING: Do NOT modify this code. The content of this method is always
  41. * regenerated by the Form Editor.
  42. */
  43. @SuppressWarnings("unchecked")
  44. // <editor-fold defaultstate="collapsed" desc="Generated Code">
  45. private void initComponents() {
  46.  
  47. pfPassword = new javax.swing.JPasswordField();
  48. tfUsername = new javax.swing.JTextField();
  49. jlUsername = new javax.swing.JLabel();
  50. jlPassword = new javax.swing.JLabel();
  51. btnSignIn = new javax.swing.JButton();
  52. jlSignInLogo = new javax.swing.JLabel();
  53. btnSignInWithoutPassword = new javax.swing.JButton();
  54.  
  55. setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  56. setBackground(new java.awt.Color(0, 255, 204));
  57.  
  58. pfPassword.setText("Password");
  59. pfPassword.addFocusListener(new java.awt.event.FocusAdapter() {
  60. public void focusGained(java.awt.event.FocusEvent evt) {
  61. pfPasswordFocusGained(evt);
  62. }
  63. });
  64. pfPassword.addMouseListener(new java.awt.event.MouseAdapter() {
  65. public void mouseClicked(java.awt.event.MouseEvent evt) {
  66. pfPasswordMouseClicked(evt);
  67. }
  68. });
  69. pfPassword.addKeyListener(new java.awt.event.KeyAdapter() {
  70. public void keyPressed(java.awt.event.KeyEvent evt) {
  71. pfPasswordKeyPressed(evt);
  72. }
  73. });
  74.  
  75. tfUsername.setText("Username");
  76. tfUsername.addMouseListener(new java.awt.event.MouseAdapter() {
  77. public void mouseClicked(java.awt.event.MouseEvent evt) {
  78. tfUsernameMouseClicked(evt);
  79. }
  80. });
  81.  
  82. jlUsername.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
  83. jlUsername.setText("Username:");
  84.  
  85. jlPassword.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
  86. jlPassword.setText("Password:");
  87.  
  88. btnSignIn.setText("Sign in");
  89. btnSignIn.addMouseListener(new java.awt.event.MouseAdapter() {
  90. public void mouseClicked(java.awt.event.MouseEvent evt) {
  91. btnSignInMouseClicked(evt);
  92. }
  93. });
  94.  
  95. jlSignInLogo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mice_interactive/MICE_SignIn_Logo.png"))); // NOI18N
  96.  
  97. btnSignInWithoutPassword.setText("Sign in without password");
  98. btnSignInWithoutPassword.addMouseListener(new java.awt.event.MouseAdapter() {
  99. public void mouseClicked(java.awt.event.MouseEvent evt) {
  100. btnSignInWithoutPasswordMouseClicked(evt);
  101. }
  102. });
  103.  
  104. javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  105. getContentPane().setLayout(layout);
  106. layout.setHorizontalGroup(
  107. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  108. .addComponent(jlSignInLogo, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  109. .addGroup(layout.createSequentialGroup()
  110. .addGap(187, 187, 187)
  111. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  112. .addGroup(layout.createSequentialGroup()
  113. .addComponent(btnSignIn, javax.swing.GroupLayout.PREFERRED_SIZE, 151, javax.swing.GroupLayout.PREFERRED_SIZE)
  114. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  115. .addComponent(btnSignInWithoutPassword))
  116. .addGroup(layout.createSequentialGroup()
  117. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  118. .addComponent(jlUsername, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE)
  119. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  120. .addComponent(tfUsername)
  121. .addComponent(jlPassword, javax.swing.GroupLayout.PREFERRED_SIZE, 66, javax.swing.GroupLayout.PREFERRED_SIZE)
  122. .addComponent(pfPassword, javax.swing.GroupLayout.PREFERRED_SIZE, 195, javax.swing.GroupLayout.PREFERRED_SIZE)))
  123. .addGap(0, 0, Short.MAX_VALUE)))
  124. .addContainerGap())
  125. );
  126. layout.setVerticalGroup(
  127. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  128. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
  129. .addComponent(jlSignInLogo, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  130. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  131. .addComponent(jlUsername)
  132. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  133. .addComponent(tfUsername, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  134. .addGap(32, 32, 32)
  135. .addComponent(jlPassword)
  136. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  137. .addComponent(pfPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  138. .addGap(75, 75, 75)
  139. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  140. .addComponent(btnSignIn, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)
  141. .addComponent(btnSignInWithoutPassword, javax.swing.GroupLayout.PREFERRED_SIZE, 36, javax.swing.GroupLayout.PREFERRED_SIZE))
  142. .addContainerGap())
  143. );
  144.  
  145. pack();
  146. }// </editor-fold>
  147.  
  148. /**
  149. * Metod för att sätta textfältet till "" när man ställer sig i det.
  150. *
  151. * @param evt
  152. */
  153. private void tfUsernameMouseClicked(java.awt.event.MouseEvent evt) {
  154.  
  155. if (tfUsername.getText().equals("Username")) {
  156. tfUsername.setText("");
  157. }
  158.  
  159. }
  160.  
  161. /**
  162. * Metod för att sätta lösenordsfältet till "" när man ställer sig i det.
  163. *
  164. * @param evt
  165. */
  166. private void pfPasswordMouseClicked(java.awt.event.MouseEvent evt) {
  167. if (pfPassword.getText().equals("Password")) {
  168. pfPassword.setText("");
  169. }
  170. }
  171.  
  172. private void pfPasswordFocusGained(java.awt.event.FocusEvent evt) {
  173. if (pfPassword.getText().equals("Password")) {
  174. pfPassword.setText("");
  175. }
  176. }
  177.  
  178. /**
  179. * Loggar in dig till programmet. Stämmer inte lösenordet så kommer det en
  180. * infobox med ett felmeddelande som säger att du ska prova med ett nytt
  181. * lösenord eller användarnamn.
  182. *
  183. * @param evt
  184. */
  185. private void btnSignInMouseClicked(java.awt.event.MouseEvent evt) {
  186. if (signIn()) {
  187. StartScreen startScreen = new StartScreen();
  188. startScreen.setVisible(true);
  189. dispose();
  190.  
  191. } else {
  192. infoBox("Wrong password or username", "Error:");
  193. System.out.println("Felaktigt");
  194. }
  195. }
  196.  
  197. /**
  198. * Gör samma sak som metoden ovan, fast den körs när "Enter" trycks. Stämmer
  199. * lösenordet så loggas du in och annars får du ett felmeddelande.
  200. *
  201. * @param evt
  202. */
  203. private void pfPasswordKeyPressed(java.awt.event.KeyEvent evt) {
  204. if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
  205. if (signIn()) {
  206. setVisible(false);
  207. StartScreen startScreen = new StartScreen();
  208. startScreen.setVisible(true);
  209. } else {
  210. infoBox("Wrong password or username", "Error:");
  211. System.out.println("Felaktigt");
  212. }
  213. }
  214. }
  215.  
  216. /**
  217. * Loggar in användaren utan krav på något lösenord eller användarnamn.
  218. * Öppnar upp en annan startscreen än den vanliga, denna med vissa
  219. * permissions.
  220. *
  221. * @param evt
  222. */
  223. private void btnSignInWithoutPasswordMouseClicked(java.awt.event.MouseEvent evt) {
  224. StartScreenPermission start = new StartScreenPermission();
  225. start.setVisible(true);
  226. dispose();
  227. }
  228.  
  229. /**
  230. * Metod som hämtar ett lösenord på databasen och jämför det med det
  231. * lösenord och användarnamn som skrivits in vid inloggning. Om lösenorden
  232. * stämmer överens returneras true och annars returneras false.
  233. *
  234. * @return
  235. */
  236. private boolean signIn() {
  237. boolean valid = false;
  238. //Hämtar ett lösenord i databasen på det användarnamn som skrivits in.
  239. String sqlFraga = "SELECT administrator.Losenord from administrator "
  240. + "JOIN anstalld "
  241. + "ON administrator.aid = anstalld.aid "
  242. + "WHERE anstalld.anvnamn = " + "'" + tfUsername.getText() + "'";
  243. try {
  244. String password = infDB.fetchSingle(sqlFraga);
  245. if (pfPassword.getText().equals(password)) {
  246. valid = true;
  247. }
  248. } catch (InfException e) {
  249. infoBox("Please try a Valid password and Username", "Error: Wrong password or username");
  250. System.out.println(e.getMessage());
  251. }
  252. return valid;
  253. }
  254.  
  255. private void infoBox(String infoMessage, String titleBar) {
  256. JOptionPane.showMessageDialog(null, infoMessage, titleBar, WIDTH);
  257. }
  258.  
  259. /**
  260. * Hämtar information om vilket lösenord som är kopplat till det som skrivs
  261. * in i användarnamnfältet.
  262. */
  263. public void passwordFraga() {
  264. String sqlFraga = "SELECT administrator.Losenord from administrator "
  265. + "JOIN anstalld"
  266. + "ON administrator.aid = anstalld.aid"
  267. + "WHERE anstalld.anvnamn = " + "'" + tfUsername.getText() + "'";
  268. }
  269.  
  270. /**
  271. * @param args the command line arguments
  272. */
  273. public static void main(String args[]) {
  274. /* Set the Nimbus look and feel */
  275. //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
  276. /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
  277. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
  278. */
  279. try {
  280. for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
  281. if ("Nimbus".equals(info.getName())) {
  282. javax.swing.UIManager.setLookAndFeel(info.getClassName());
  283. break;
  284. }
  285. }
  286. } catch (ClassNotFoundException ex) {
  287. java.util.logging.Logger.getLogger(LogIn.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  288. } catch (InstantiationException ex) {
  289. java.util.logging.Logger.getLogger(LogIn.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  290. } catch (IllegalAccessException ex) {
  291. java.util.logging.Logger.getLogger(LogIn.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  292. } catch (javax.swing.UnsupportedLookAndFeelException ex) {
  293. java.util.logging.Logger.getLogger(LogIn.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  294. }
  295. //</editor-fold>
  296.  
  297. /* Create and display the form */
  298. java.awt.EventQueue.invokeLater(new Runnable() {
  299. public void run() {
  300. new LogIn().setVisible(true);
  301. }
  302. });
  303. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement