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 }