Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Switching between screens in Java swing

I had build big application for my client in Android. The new project is to build the same app for PC in Java. So i have started developing with use of swing. When building in Android i use classes with activities that had content views and i could switch between activities. In java i have build multiple classes that extends JFrame and i wish to switch between them. What is the right way to to this?

is this:

new_class.setVisible(true);
old_class.setVisible(false);

the correct way?

like image 892
DanM Avatar asked Feb 20 '23 08:02

DanM


1 Answers

The general approach using Swing would be to either combine all the GUI elements 'screens' in one top level container using the appropriate strategy (generally a CardLayout, but the devil is in the details). This GUI shows some other options (JSplitPane & nested layouts):

See also this answer for many other alternatives.


For any other functionality which would logically be in a different container, use a (possibly) modal dialog or a JOptionPane. E.G. a log-in, popped from the main frame:


Another thing to take into account is that Swing (with a desktop monitor) allows us to offer a richer set of components to the user. For instance, surfing around the Android SD card file system would generally be achieved by using one list per directory, and either changing the content of the list or view on entering a new directory. In Swing you might use a single JTree for that. So there is much less need for 'different screens' in a desktop GUI toolkit, over one designed to be used on a tablet or phone.

Here is a tree as used in a file browser.

like image 171
Andrew Thompson Avatar answered Mar 03 '23 15:03

Andrew Thompson