6
|
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 }
|