I'm writing a simple Java Swing GUI application following the MVC design pattern. I've got a MainFrame.java which instantiates LoginDialog.java (modal JDialog). The user then logs in with username and password or can register (by clicking on Jbutton) which instantiates RegisterDialog.java (JDialog instantiated from LoginDialog). I've also got a Controller.java class which connects to a Database.java, and allows interaction with database. MainFrame object can interact with Database through controller object. On the RegisterDialog, when the user presses submit, I want to verify that the username is not already taken. How can I get data from Database from RegisterDialog? Also how can I get data from LoginDialog (should I have MainFrame listen to a DataRequestEvent that would be fired from LoginDialog?)
public class Controller {
private Database db;
public Controller(){
db = new Database();
}
}
public class MainFrame extends JFrame{
private LoginDialog loginDialog;
private Controller controller;
public MainFrame(){
controller = new Controller();
loginDialog = new LoginDialog();
loginDialog.setVisible(true);
//...
}
}
public class LoginDialog extends JDialog{
//form fields...
private JButton regBtn;
private RegisterDialog registerDialog;
public LoginDialog(){
registerDialog = new RegisterDialog();
regBtn = new JButton("Register");
regBtn.addActionListener(new ActionListener(){
registerDialog.setVisible(true);
});
}
}
public class RegisterDialog extends JDialog{
//...
private JButton submitBtn;
public RegisterDialog(){
submitBtn = new JButton();
submitBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
validateUsername();
}
});
}
public void validateUsername(){
//here I need to check whether username is already in DB (sqlite)
}
}