Mercurial > repos > yufei-luo > s_mart
comparison SMART/Java/Installer/PasswordAsker.java @ 6:769e306b7933
Change the repository level.
author | yufei-luo |
---|---|
date | Fri, 18 Jan 2013 04:54:14 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
5:ea3082881bf8 | 6:769e306b7933 |
---|---|
1 import java.awt.*; | |
2 import java.awt.event.*; | |
3 import javax.swing.*; | |
4 import java.util.concurrent.CountDownLatch; | |
5 | |
6 public class PasswordAsker { | |
7 | |
8 static String password; | |
9 static JFrame frame; | |
10 static CountDownLatch latch; | |
11 | |
12 | |
13 public PasswordAsker() { | |
14 password = null; | |
15 javax.swing.SwingUtilities.invokeLater(new Runnable() { | |
16 public void run() { | |
17 createAndShowGUI(); | |
18 } | |
19 }); | |
20 latch = new CountDownLatch(1); | |
21 } | |
22 | |
23 | |
24 private static void createAndShowGUI() { | |
25 //Create and set up the window. | |
26 frame = new JFrame("Password"); | |
27 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | |
28 frame.setContentPane(setMainPane()); | |
29 | |
30 //Display the window. | |
31 frame.pack(); | |
32 frame.setVisible(true); | |
33 } | |
34 | |
35 | |
36 private static JPanel setMainPane() { | |
37 JPanel rootPanel = new JPanel(false); | |
38 rootPanel.setLayout(new GridLayout(0, 1)); | |
39 | |
40 JPanel infoPanel = new JPanel(false); | |
41 JLabel infoLabel = new JLabel("Please write here the password that you entered for the mySQL root account.\r\nNo information is stored nor sent. I promise."); | |
42 infoPanel.add(infoLabel); | |
43 | |
44 JPanel passPanel = new JPanel(false); | |
45 passPanel.setLayout(new GridLayout(1, 0)); | |
46 JLabel passLabel = new JLabel("password"); | |
47 final JTextField passText = new JTextField(20); | |
48 passLabel.setLabelFor(passText); | |
49 passPanel.add(passLabel); | |
50 passPanel.add(passText); | |
51 | |
52 JPanel okPanel = new JPanel(false); | |
53 JButton okButton = new JButton("OK"); | |
54 okPanel.add(okButton); | |
55 | |
56 okButton.addActionListener(new ActionListener() { | |
57 public void actionPerformed(ActionEvent e) { | |
58 password = passText.getText(); | |
59 frame.setVisible(false); | |
60 frame.dispose(); | |
61 latch.countDown(); | |
62 } | |
63 }); | |
64 | |
65 rootPanel.add(infoPanel); | |
66 rootPanel.add(passPanel); | |
67 rootPanel.add(okPanel); | |
68 | |
69 return rootPanel; | |
70 } | |
71 | |
72 | |
73 public boolean waitForPassword() { | |
74 try { | |
75 latch.await(); | |
76 } | |
77 catch (InterruptedException e) { | |
78 return false; | |
79 } | |
80 return true; | |
81 } | |
82 | |
83 | |
84 public String getPassword() { | |
85 return password; | |
86 } | |
87 } |