package org.activityinfo.geoadmin; import net.miginfocom.swing.MigLayout; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class PasswordForm { public interface Callback { void ok(String username, String password); } private JTextField usernameInput; private JPasswordField passwordInput; public PasswordForm() { } public void show(final Callback callback) { // Basic form create final JDialog frame = new JDialog(); frame.setTitle("Login"); frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); frame.setSize(300,150); // Creating the grid JPanel panel = new JPanel(new MigLayout()); frame.getContentPane().add(panel, BorderLayout.NORTH); usernameInput = new JTextField(25); passwordInput = new JPasswordField(25); panel.add(new JLabel("Email:")); panel.add(usernameInput, "wrap"); panel.add(new JLabel("Password:")); panel.add(passwordInput, "wrap"); JButton loginInput = new JButton("Login"); loginInput.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { frame.setVisible(false); callback.ok(usernameInput.getText(), new String(passwordInput.getPassword())); } }); panel.add(loginInput); frame.setVisible(true); } }