This week's giveaway is in the Android forum.
We're giving away four copies of Android Security Essentials Live Lessons and have Godfrey Nolan on-line!
See this thread for details.
The moose likes Swing / AWT / SWT and the fly likes How to refresh View in MVC architecture. Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark "How to refresh View in MVC architecture." Watch "How to refresh View in MVC architecture." New topic
Author

How to refresh View in MVC architecture.

Anudeep Pat
Greenhorn

Joined: Apr 09, 2010
Posts: 10
Ranchers need some help.

I am given a project in MVC with Swings.

I should develop a system's front end where the user is asked for his username and password. When he enters them correctly then he's asked a random question from a database which if he answers correctly will be logged in.

I have already done them using Swings but without MVC.( I hide the 1. Login page when the username and password and display 2. Random Question Page)

1. Login Page



2. Random Question




As I have started converting it to MVC I created a View, Controller and Model files for the login page.

I have created a second View file for the Random Question page and am planning to use the same controller and model file.( I dont know if its ok do it)

My questions are ,
a. Can I some how refresh the 1. Login Page and display 2. Random Question in the same window or do I have to use second View file?
b. How to add actionlisteners for radio buttons in MVC?
c. How to call the second view file and from where?

Code
View file:


Controller:


Model:


The program is not complete, but when I run I am displayed 1. Login page when I enter the correct username and password, it hides view1 but a NULL pointer error is shown and wont display 2. Random question view.

Any help/suggestion is welcome.
Thanks in advance!
pete stein
Bartender

Joined: Feb 23, 2007
Posts: 1561
I have some suggestions, but first a warning: please note that I am not a professional and I cannot say that these suggestions are the best way or the professional way to do what you want but rather can say that it has worked well for me.

That being said, my suggestions:
  • First off, you may want to avoid having your view extend JFrame as that is not necessary and can limit what you can do with your view to a degree. Rather I would have my views subclass JPanel (or perhaps even better, not subclass anything at all, but rather be able to produce a JPanel with the appropriate behavior -- use composition rather than inheritance to build your code).
  • Next, I'd have either my main view's JPanel or a JPanel held by the main view use a CardLayout for its layout. This will allow this container to hold and display a JPanel and then swap it for other JPanels (really, it can swap any component) on your command. I'd give the main view a public method to allow the model to swap views by using public constant Strings (example below).
  • Next consider having your model's database-calling code done on a background thread such as a SwingWorker. This will help prevent your GUI from appearing locked when the slower database lookups are being done.
  • Next, consider removing @SuppressWarnings("deprecation") and along with this, avoid using deprecated methods. It is rarely necessary to use deprecated methods and almost always not desired.


  • A very short example of some stuff mentioned above. Any corrections or improvements are MUCH appreciated!


    Much luck and hope this helps!
    Anudeep Pat
    Greenhorn

    Joined: Apr 09, 2010
    Posts: 10
    It helped thanks a lot
     
    I agree. Here's the link: http://aspose.com/file-tools
     
    subject: How to refresh View in MVC architecture.
     
    Similar Threads
    Sending password/login info using sockets
    Boolean problem
    java.lang.ClassCastException
    Implementing scanner into a simple login page
    linux file access