Mercurial > repos > yufei-luo > s_mart
comparison SMART/Java/Installer/PasswordAsker.java @ 31:0ab839023fe4
Uploaded
| author | m-zytnicki |
|---|---|
| date | Tue, 30 Apr 2013 14:33:21 -0400 |
| parents | 769e306b7933 |
| children |
comparison
equal
deleted
inserted
replaced
| 30:5677346472b5 | 31:0ab839023fe4 |
|---|---|
| 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 } |
