Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / GUI / November 2004

Tip: Looking for answers? Try searching our database.

Swing MDI applications

Thread view: 
Richard Asbury - 16 Nov 2004 17:31 GMT
Dear all,

Can anyone point me in the direction of a tutorial for building MDI
applications with Swing, which goes beyond the Swing tutorial's "How to Use
Internal Frames"? I've seen a few references to a document at The Swing
Connection, but the document appears to have been taken down (it's no longer
in the archive).

In my searching around, I found a few comments from people suggesting that
MDI applications are no longer believed to be a good approach. Instead,
people suggest using a set of top level windows - one for each document.
Could someone explain to me why this is? In my opinion, this change does not
make the GUI any more data centric, but only serves to "unlink" the apps
windows from one another so that the user can no longer tell (at a glance)
which window belongs to which app. Do most users really prefer this solution
to the older "contained" MDI style?

Anyway, any help with either of these would be appreciated!

Richard Asbury
Steven T Abell - 16 Nov 2004 18:22 GMT
> In my searching around, I found a few comments from people suggesting that
> MDI applications are no longer believed to be a good approach. Instead,
[quoted text clipped - 4 lines]
> which window belongs to which app. Do most users really prefer this solution
> to the older "contained" MDI style?

I wouldn't say that MDI is an "older" style:
true multi-window apps are as old as Smalltalk.

There is a tradeoff here,
and people have different preferences.
If you use only one app at a time,
but have multiple live docs within that app,
then a full-screen MDI is a nice way to go.
If you use one app at a time,
but only have one live doc at a time,
then MDI is a waste of screen space.
If you have multiple apps running at once,
and use them to arrange, compare, and transfer information
between windows in ways that no single application would allow,
then MDI is entirely counterproductive.

I've seen a lot of people who full-screen all their MDI apps,
and then painstakingly switch between apps
when they need to evaluate information from more than one.
It's an ineffective way of working,
but many people think it's the way things are supposed to be.
Breaking them of this habit can be hard.

A nice feature of a non-MDI app
is to be able to gather all of that app's windows together
in some nicely ranked arrangement on demand,
usually via some global menu item.
This allows you to clean up desktop clutter instantly,
which is the only thing that MDIs really have in their favor.

Steve
Signature

Steven T Abell
Sofware Designer
http://www.brising.com

In software, nothing is more concrete than a good abstraction.

Thomas Weidenfeller - 17 Nov 2004 08:38 GMT
> Can anyone point me in the direction of a tutorial for building MDI
> applications with Swing, which goes beyond the Swing tutorial's "How to Use
> Internal Frames"?

What are you missing? There isn't much more than placing JInternalFrames
on a JDesktop.

> In my searching around, I found a few comments from people suggesting that
> MDI applications are no longer believed to be a good approach.

Microsoft, for a long time the greatest proponent of MDI applications,
gave up on them and changed their GUI design rules some years ago.

On other platforms they were never popular at all. It was basically the
Microsoft world who made them so popular.

> Instead,
> people suggest using a set of top level windows - one for each document.
> Could someone explain to me why this is?

Screen space is a scare resource. The big fat (and IMHO superfluous)
main windows of MDI applications take up so much of this scare resource
without delivering an adequate value.

> In my opinion, this change does not
> make the GUI any more data centric, but only serves to "unlink" the apps
> windows from one another so that the user can no longer tell (at a glance)
> which window belongs to which app.

And why should that matter? I always hear this from MDI fans. When do
you have the need to figure out (at a glance) "oh, all these windows
belong to application XYZ!". What you usually do is to look at a
particular window and check which file/data you are processing with that
window.

And even if you really need such a feature from time to time, is it
really worth to sacrify so much screen space all the time for the
occassional "tell at a glance"?

> Do most users really prefer this solution
> to the older "contained" MDI style?

There is not "THE" user. For the same reason users almost blindly click
on OK buttons if you present them one (it is a habit), there is a
category of users who absolutely want MDI. They are used to it and don't
want to change at all. You can sometimes also observer that MDI fan like
the "information throttling" caused by MDI. MDI limits the amount of
information you can have on the screen at once, because there isn't much
more room to see data from another application.

But if you take Unix users for example, they almost universally hate MDI
applications. Historically there were never many MDI applications for
Unix and any vendor trying to deliver an MDI application for Unix today
has a hard time. I have more than once seen that an application already
failed the first round in some application selection process because
just seconds after it started it came up with a big fat MDI window - of
course taking up the whole 21" screen.

I have seen people arguing that management types usually prefer MDI,
while technical peoples prefer SDI. I haven't observed this, but my GUI
applications were usually for technical people, and I never had a
request to change them to MDI.

/Thomas
Richard Asbury - 17 Nov 2004 22:21 GMT
>> In my opinion, this change does not make the GUI any more data centric,
>> but only serves to "unlink" the apps windows from one another so that the
[quoted text clipped - 8 lines]
> worth to sacrify so much screen space all the time for the occassional
> "tell at a glance"?

I'm thinking of situations where toolbars are in separate windows from the
documents that the tools act on - for example in an IDE like Sun ONE studio,
which offers both a "contained" window environment or separated windows. In
these situations one is often using menus, toolbars and documents, so it's
important that you know which toolbars are relevant to which documents. It
is worth the trade-off in space when you're switching between programs only
occasionally, and not using the apps together, e.g. browsing the web while
your e-mail program downloads messages in the background.

I appreciate that working with multiple apps at the same time would warrant
a more separable interface, so I guess the question for the app writer is
whether their application is likely to be used with others simultaneously.

Richard
Stephen Lost - 17 Nov 2004 23:28 GMT

> But if you take Unix users for example, they almost universally hate MDI
> applications. Historically there were never many MDI applications for
> Unix and any vendor trying to deliver an MDI application for Unix today

The biggest reason for this is that MDI applications are completely
broken when using virtual desktops or multiple monitors.  I have
never yet seen an MDI application that allows you to span desktops.

Signature

"Divide by cucumber error, please reinstall Universe and reboot"
            -- Terry Pratchett, _Hogfather_

Larry Barowski - 18 Nov 2004 00:59 GMT
> Dear all,
>
[quoted text clipped - 3 lines]
> people suggest using a set of top level windows - one for each document.
> ...

Using Swing, it isn't too much work to offer the user both modes, as well as
the
ability to move individual windows between the virtual desktop and system
desktop.


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.