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();
}
}