Hey guys I'm an amateur programmer (in Gr12) and am working on a program that asks a user for a username and password through a custom JDialog (created using eclipse WindowBuilder)
The problem I'm having is retrieving the data from the "popup", I coded a test program but the values are displayed before i can enter any data.
here is my code:
package winowbuilderstuff;
public class TestDialog {
/**
 * @param args
 */
public static void main(String[] args) {
    LoginDialog login = new LoginDialog ();
    login.setVisible(true);
    String username = login.getUser();
    String password = login.getPass();
    System.out.println("Username: " + username);
    System.out.println("Password: " + password);
}
}
package winowbuilderstuff;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class LoginDialog extends JDialog {
private final JPanel contentPanel = new JPanel();
private JTextField txtfUsername;
private JPasswordField pswrdf;
/**
 * Launch the application.
 */
public static void main(String[] args) {
    try {
        LoginDialog dialog = new LoginDialog();
        dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
        dialog.setVisible(true);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
/**
 * Create the dialog.
 */
public LoginDialog() {
    setTitle("Login");
    setBounds(100, 100, 478, 150);
    getContentPane().setLayout(new BorderLayout());
    contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
    getContentPane().add(contentPanel, BorderLayout.CENTER);
    contentPanel.setLayout(null);
    {
        JLabel lblUsername = new JLabel("Username");
        lblUsername.setBounds(25, 13, 68, 14);
        contentPanel.add(lblUsername);
    }
    {
        txtfUsername = new JTextField();
        txtfUsername.setToolTipText("Enter your username");
        txtfUsername.setBounds(137, 13, 287, 17);
        contentPanel.add(txtfUsername);
        txtfUsername.setColumns(10);
    }
    JLabel lblPassword = new JLabel("Password");
    lblPassword.setBounds(25, 52, 68, 14);
    contentPanel.add(lblPassword);
    pswrdf = new JPasswordField();
    pswrdf.setToolTipText("Enter your password");
    pswrdf.setBounds(137, 50, 287, 17);
    contentPanel.add(pswrdf);
    {
        JPanel buttonPane = new JPanel();
        buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
        getContentPane().add(buttonPane, BorderLayout.SOUTH);
        {
            JButton btnLogin = new JButton("Login");
            btnLogin.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) {
                    getUser();
                    getPass();
                    dispose();
                }
            });
            btnLogin.setActionCommand("OK");
            buttonPane.add(btnLogin);
            getRootPane().setDefaultButton(btnLogin);
        }
        {
            JButton btnCancel = new JButton("Cancel");
            btnCancel.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) {
                    dispose();
                }
            });
            btnCancel.setActionCommand("Cancel");
            buttonPane.add(btnCancel);
        }
    }
}
public String getUser(){
    return txtfUsername.getText();
}
public String getPass(){
    return pswrdf.getText();
}
}
 
     
    