aspose file tools*
The moose likes Developer Certification (SCJD/OCMJD) and the fly likes NX: Will they think my GUI is too simple? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Developer Certification (SCJD/OCMJD)
Bookmark "NX: Will they think my GUI is too simple?" Watch "NX: Will they think my GUI is too simple?" New topic
Author

NX: Will they think my GUI is too simple?

Morgan Bath
Ranch Hand

Joined: Jan 16, 2004
Posts: 196
Ive been slashing buttons and options from my gui because after a few runs through I realised id had added things basically to try and prove I know swing. After a few hours Im left with a very very bare GUI, and yet its what I would want to use myself. My worry is it looks like I have been lazy.
Basically I have A JTable at the top of the window and underneath it is the search panel. And thats it! The search panel is two text fields, a search button and a clear button.
I totally stripped the Booking panel out after I ran the client and my first instinct was to double click a row to alter it. Now The user double clicks a record and if its free he gets a JOptionPane asking him for a client ID, or if its already booked he gets a "Customer xxxx has this contractor reserved. Do you wish to delete this reservation" type of thing.
I used the default JOptionPanes rather than design my own wizzy looking ones to start with. But to be honest whilst they are plain they seem oddly appropriate.
Anyone submit a really bare GUI and get good marks for it? For that matter has anyone submitted a solution with no buttons for booking or unbooking? That bit especially makes me nervous, but the gui looks ten times better without them, and double clicking is so instinctive for most users I think.


Morgan
SCJP (1.4), SCJD (1.4), SCWCD (1.3), SCBCD (1.3)
John Smith
Ranch Hand

Joined: Oct 08, 2001
Posts: 2937
I'd be more considerate to GUI design, -- a few cowboys here failed the certification because they thought it was not very relevant. While you can safely throw away the pretty pictures, the adherence to the standard computer-human interaction guidelines matters. At a minimum, you should have a menu bar, mnemonics, default GUI controls, logical tab ordering, and frame resizing. Fortunately, you don't have to go much beyond the minimum to pass the certification. But neglecting the minimum can easily be viewed as contempt by your grader, and there is no reason for you to risk it.
Jacques Bosch
Ranch Hand

Joined: Dec 18, 2003
Posts: 319
Sounds good to me.
Haven't submitted mine yet, but it's also basic.


Jacques<br />*******<br />MCP, SCJP, SCJD, SCWCD
Jacques Bosch
Ranch Hand

Joined: Dec 18, 2003
Posts: 319
To add... I have all of these:

At a minimum, you should have a menu bar, mnemonics, default GUI controls, logical tab ordering, and frame resizing.
Morgan Bath
Ranch Hand

Joined: Jan 16, 2004
Posts: 196
Originally posted by Eugene Kononov:
At a minimum, you should have a menu bar, mnemonics, default GUI controls, logical tab ordering, and frame resizing. Fortunately, you don't have to go much beyond the minimum to pass the certification. But neglecting the minimum can easily be viewed as contempt by your grader, and there is no reason for you to risk it.

Menu bar I have but didnt mention as I figured it was a given Mnemonics means key mnemonics in this case right? Got those (although im thinking about just having escape for clear and enter for search at the moment). Tab ordering I forgot about .. thanks Frame resizing Ive not handled yet but its on my list of things to do once I have the layout finalised.
But the fact that I dont have a button to book and unbook records doesnt bother you? You are happy with double click to change status of a record?
Forgot to mention, currently have plans for user manual to be available in a popup window, accessed from help menu.
[ February 06, 2004: Message edited by: morgan bath ]
JunKao Lin
Greenhorn

Joined: Feb 05, 2004
Posts: 10
Hi Morgan,
Originally posted by morgan bath:
Ive been slashing buttons and options from my gui because after a few runs through I realised id had added things basically to try and prove I know swing. After a few hours Im left with a very very bare GUI, and yet its what I would want to use myself. My worry is it looks like I have been lazy.
Basically I have A JTable at the top of the window and underneath it is the search panel. And thats it! The search panel is two text fields, a search button and a clear button.
I totally stripped the Booking panel out after I ran the client and my first instinct was to double click a row to alter it. Now The user double clicks a record and if its free he gets a JOptionPane asking him for a client ID, or if its already booked he gets a "Customer xxxx has this contractor reserved. Do you wish to delete this reservation" type of thing.
I used the default JOptionPanes rather than design my own wizzy looking ones to start with. But to be honest whilst they are plain they seem oddly appropriate.
Anyone submit a really bare GUI and get good marks for it? For that matter has anyone submitted a solution with no buttons for booking or unbooking? That bit especially makes me nervous, but the gui looks ten times better without them, and double clicking is so instinctive for most users I think.


I don't think we need to make the gui complicated intentionally.
As long as we make our user use our gui easily,quickly and cosily,
I think we has done well enough.
ljk


ljk
George Marinkovich
Ranch Hand

Joined: Apr 15, 2003
Posts: 619
Hi Morgan,
Your GUI sounds good to me. Specifically, I'm not bothered by the absence of a book button. I think double-clicking a row of the JTable is reasonably intuitive and as long as it's documented in the user's guide I don't see any problem with it.
Hope this helps,
George


Regards, George
SCJP, SCJD, SCWCD, SCBCD
Ulrich Heeger
Ranch Hand

Joined: Jun 06, 2003
Posts: 266
Hi,
Eugene wrote:

At a minimum, you should have a menu bar, mnemonics, default GUI controls, logical tab ordering, and frame resizing.

1. What are default GUI controls (simply the Controller-class confirming the MVC-pattern)?
2. What is logical tab ordering?
3. What do you envisage with frame resizing? Do you mean within the setup-method to recalculate the new size of the table due to possible longer values? Or do you mean that if the user drags the border of the GUI to enlarge it, that the components are resized proportionally?
Regards
Ulrich
Ken Krebs
Ranch Hand

Joined: Nov 27, 2002
Posts: 451
At a minimum, you should have a menu bar, mnemonics, default GUI controls, logical tab ordering, and frame resizing.

It's not really necessary to provide a menu bar, mnemonics, or tab ordering. The app is sufficiently simple that you can do without such unneeded (for this app) ornamentation. I had none of those and got a perfect gui score. My interface had 2 JComboBoxes (with name & location JLabels), 2 JCheckBoxes (for exact & case-sensitive), 2 JButtons (book & exit), 1 JTextField (with Jlabel) for booking, and of course, 1 JTable. It scored well on usability because it was ultra simple for non-computer people. I put a lot of my effort into handling resizing of the frame and automatic handling of resizing/scrolling for the table and resizing of the column headers to make it more pleasant to use. I also put a lot of effort into creating a nice, well organized layout and a short, clear user document.
I recommend doing a usablity check by handing it over to a non-computer person and seeing if they can follow the instruction and use the program. I had my wife do it and Max told me he did the same for his.
If you're going to put a lot of effort in the gui, put it towards things that add value from a usability standpoint. Remember the KISS principle (Keep It Simple Stupid).
Your description sounds nice and simple to me. Just document it well and be kind to the user.


kktec<br />SCJP, SCWCD, SCJD<br />"What we observe is not nature itself, but nature exposed to our method of questioning." - Werner Heisenberg
Morgan Bath
Ranch Hand

Joined: Jan 16, 2004
Posts: 196
I like the EXACT match check box but its kind of superfluous on my assignment as it specifies quite clearly that the name and location on the search must be an exact match.
But as to KISS .... mine currently is 10 times simpler than yours, and thats my worry. I have no book buttons, no text field for customer ID, no combo boxes for search (although I may add that instead of the text fields). Just a jtable, 2 text fields and a search button. The rest appears as needed in JOptionPanes. Its simple, it works perfectly, its easy to understand, and yet its scaring me half to death!
John Smith
Ranch Hand

Joined: Oct 08, 2001
Posts: 2937
KK: It's not really necessary to provide a menu bar, mnemonics, or tab ordering. The app is sufficiently simple that you can do without such unneeded (for this app) ornamentation.
I believe it will pay to play safely here. I remember a rancher reporting a certification failure accompanied by the grader explanation that the app didn't have a menu bar.
Ken Krebs
Ranch Hand

Joined: Nov 27, 2002
Posts: 451
Eugene,
I believe it will pay to play safely here. I remember a rancher reporting a certification failure accompanied by the grader explanation that the app didn't have a menu bar.

I understand your conservative attitude and a certain amount of "grader insanity paranoia" is in order. This menu bar comment, although given out of context, seems to indicate a grader who is in serious need of some usability training. He seems to think the 2 volumes of the "Java Look and Feel Design Guidelines" are actually the old and new testaments. This kind of comment, if it were in my grade, would have brought some loud howls of protest.
The real question is if adding a menu bar has a positive value for the user. If not, why waste time/money adding something that just adds clutter. If a ui is simple and convenient to use, has an easy learning curve, and is pleasing to look at, it's a success in my book.

Morgan,
Your interface sounds pretty good to me. I can't guarantee you won't get a nutty grader though. I don't think there is anything wrong with using the dialog box to actually perform the booking. Adding those combo boxes and an easy way out of the app would be nice conveniences for the user. The double-clicking thing is a little questionable in that the user may be forced to read the instructions. A book button to bring up the dialog may be more natural.
Ulrich Heeger
Ranch Hand

Joined: Jun 06, 2003
Posts: 266
Hi,
I have only non-editable ComboBoxes for the search-function. I mean, the User can choose the exact value of location and hotel name or "any", but can't do any special search about for example "s" within a TextField.
Do you think, that's enough?
Greetings
Ulrich
Morgan Bath
Ranch Hand

Joined: Jan 16, 2004
Posts: 196
Originally posted by Ken Krebs:
Eugene,
The double-clicking thing is a little questionable in that the user may be forced to read the instructions. A book button to bring up the dialog may be more natural.

But it was sooooo ugly A button just sitting there ... brooding. I figured a tooltip on the JTable would help even the slowest new user. But perhaps you are right. Maybe ill put the button back, but I swear not once did I get the urge to use it.
Morgan Bath
Ranch Hand

Joined: Jan 16, 2004
Posts: 196
On the resize issue is it acceptable to simply not allow the user to make the width smaller than a certain minimum. It makes little sense to have a jtable smaller than about 350 pixels anyway.
Ulrich Heeger
Ranch Hand

Joined: Jun 06, 2003
Posts: 266
Hi Morgan,
On the resize issue is it acceptable to simply not allow the user to make the width smaller than a certain minimum. It makes little sense to have a jtable smaller than about 350 pixels anyway.

Do you think it's acceptable to just disable the resizability with setResizable(false)?
Greetings
Ulrich
John Smith
Ranch Hand

Joined: Oct 08, 2001
Posts: 2937
MB: On the resize issue is it acceptable to simply not allow the user to make the width smaller than a certain minimum.
Absolutely, -- this is how most of the well-designed Java apps work. Take a look at JBuilder, for example. Also, are you familiar with the Java Look and Feel Design Guidelines?
[ February 07, 2004: Message edited by: Eugene Kononov ]
Ulrich Heeger
Ranch Hand

Joined: Jun 06, 2003
Posts: 266
Hi,
everybody seems to ignore my questions :
Do you think it's acceptable to just disable the resizability of the GUI with setResizable(false)? The table itself of course remains resizable.
Comments?
Regards
Ulrich
[ February 08, 2004: Message edited by: Ulrich Heeger ]
George Marinkovich
Ranch Hand

Joined: Apr 15, 2003
Posts: 619
Hi Ulrich,
Originally posted by Ulrich Heeger:
Do you think it's acceptable to just disable the resizability of the GUI with setResizable(false)? The table itself of course remains resizable.
Comments?

Well, I disabled resizability on my GUI main window. I haven't received my grade yet so I don't know whether I'll be penalized for this or not. If I had to do it over again I would have made the GUI resizable, however at a certain point I just wanted to stop fiddling around and submit the thing. I had a variable number of search criteria fields (determined by the contents of the database file) and I wasn't happy with how they behaved when the screen size was reduced. I think I should have made the window resizable but established a minimum window size. I didn't realize I could have done this at the time though, so I didn't do it.
Hope this helps,
George
Ulrich Heeger
Ranch Hand

Joined: Jun 06, 2003
Posts: 266
Hi George,
thanks for your reply.
Well, I'm also get tired of trying to improve my assignment permanently. The problem is that I'm using GridBagLayout and there - perhaps I'm missing something - if you resize the GUI main window the individual components like the table don't change their size and thus it doesn't look great. Thus I'll probably - like you - disable resizability of my GUI main window.
Thanx & Greetings
Ulrich
John Smith
Ranch Hand

Joined: Oct 08, 2001
Posts: 2937
Thus I'll probably - like you - disable resizability of my GUI main window.
I strongly advise you not to disable it. It's pretty fundamental stuff in Java look and feel, and ties closely to the good use of layout manager. My bet is that you can expect 25% off your GUI marks if your frame is not resizable.
George Marinkovich
Ranch Hand

Joined: Apr 15, 2003
Posts: 619
Considering all that's involved in the user interface a 25% penalty for not having a resizable GUI window seems highly unlikely to me. In any case we should have another data point to add to the discussion as soon as I get my score. I recommend making the GUI window resizable, but I didn't and I'm not expecting to loose 25% for not doing so.
I think there are many more important issues in the GUI than making the window resizable. The following comes to mind: the use of combo boxes, a logical workflow layout, proper column widths in the JTable, etc. I rate all of those as more important than window resizing.
Hope this helps,
George
[ February 09, 2004: Message edited by: George Marinkovich ]
Ken Krebs
Ranch Hand

Joined: Nov 27, 2002
Posts: 451
I think the most important point to consider when building any GUI, aside from does it do what it's supposed to do, is how the user will like working with it. Perhaps, the user will be looking at his list of customer id's in another app and want to use it at the same time as yours. Will he be able to conveniently do so if you disable resizing ?
I don't know if disabling resizing would merit a 25% gui knockoff, but I probably would take a dim view of it whether I was the grader or a user.
I took the approach that the user rules and wrapped both the table and the main gui panel itself in a scrollpane with scrollbars displayed only as needed. I also made sure that the gui was usable at resolutions down to 640x480 without any fuss for the user, with nicely sized columns.
Ulrich Heeger
Ranch Hand

Joined: Jun 06, 2003
Posts: 266
Hi Ken, George, Eugene,
ok, you convinced me I'll change my gui. I won't use GridBagLayout and make my main GUI window resizable.
Greetings
Ulrich
Leo Tien
Ranch Hand

Joined: Sep 10, 2002
Posts: 156
Hi Ulrich :
I have only non-editable ComboBoxes for the search-function. I mean, the User can choose the exact value of location and hotel name or "any", but can't do any special search about for example "s" within a TextField.
Do you think, that's enough?

I think you should make your ComboBox editable.
Hi Ken:
My interface had 2 JComboBoxes (with name & location JLabels), 2 JCheckBoxes (for exact & case-sensitive), 2 JButtons (book & exit), 1 JTextField (with Jlabel) for booking, and of course, 1 JTable.

Where your search button???
This is my Main Frame, it like Ken said, pls comment...
Jacques Bosch
Ranch Hand

Joined: Dec 18, 2003
Posts: 319
Leo, Looks good.
Below is my main gui.
I didn't use any combos or case sensitive check box. All my searches are case sensitive.
Leo Tien
Ranch Hand

Joined: Sep 10, 2002
Posts: 156
Hi Jacques:
I think our GUI design are very similar.
After read this thread, what you think on ComboBox and JTextField?
Jacques Bosch
Ranch Hand

Joined: Dec 18, 2003
Posts: 319
I think combos are better in the real world. But then, I wouldn't ever write an app in this way in the real world.
I decided that text fields are fine for this project and fulfill the requirements closely enough.
But we'll see what I score for my GUI. I submitted my project on Monday. Writing the exam in about 3 hours.
Leo Tien
Ranch Hand

Joined: Sep 10, 2002
Posts: 156
Hi Jacques:
Hope you get hign score !!!
Jacques Bosch
Ranch Hand

Joined: Dec 18, 2003
Posts: 319
Thanx.
Jacques Bosch
Ranch Hand

Joined: Dec 18, 2003
Posts: 319
Back from my exam.
Was quite easy. Only had four questions.
There was just one about my table model which I wasn't expecting, but it went well.
.......We'll see.
Morgan Bath
Ranch Hand

Joined: Jan 16, 2004
Posts: 196
Why the EXACT checkbox? Am I the only lucky one who got a specific description stating that the gui should supply an exact match? I would have done a checkbox if not for this comment.
My interfaces look similar to yours other wise. Ive relied on tool tips instead of the text you have near the search area, and I only have one button for booking: Alter Booking Status.
George Marinkovich
Ranch Hand

Joined: Apr 15, 2003
Posts: 619
Hi Morgan,
Originally posted by Morgan Bath:
Why the EXACT checkbox? Am I the only lucky one who got a specific description stating that the gui should supply an exact match?

I think everybody got pretty much the same directions on this point. To quote from my assignment instructions:

The user interface for this assignment must satisfy the following criteria:
It must be composed exclusively with components from the Java Foundation Classes (Swing components).
It must allow the user to search the data for all records, or for records where the name and/or location fields exactly match values specified by the user.
It must present search results in a JTable.
It must allow the user to book a selected record, updating the database file accordingly.

So the people (including me, I'm guilty) providing the ability to do wildcard matching are doing something extra that is not required and is beyond the scope of the project. If one can resist the temptation of adding these extras maybe one can complete the project in 20 hours to 2 weeks.
Hope this helps,
George
Morgan Bath
Ranch Hand

Joined: Jan 16, 2004
Posts: 196
Originally posted by George Marinkovich:
Hi Morgan,

If one can resist the temptation of adding these extras maybe one can complete the project in 20 hours to 2 weeks.
Hope this helps,
George

Unless of course you spend 5 days coming up with tests for your locking mechanism. In fact im still doing it. I keep coming up with ideas that convince me my solution isnt thread safe and im off writing new tests!
Im an overclocker and I have some serious burn tools at my disposal but I think from now on Im just going to run my assignment tests
Ive been at this about 4 or 5 weeks now. Im second guessing myself at every turn. Im changing stuff, agonising over things and generally acting like a teenager preparing his first ever valentines poem. If this had been for money Id have had it out in 4 days with a smile. With all the 'new' developements on this project im expecting to be here still in 4 months! Aparantly NIO isnt allowed and I may have to rip the guts out of my database! ooooh 5 more days of thread testing added .....
George Marinkovich
Ranch Hand

Joined: Apr 15, 2003
Posts: 619
Hey Morgan,
Originally posted by Morgan Bath:

Aparantly NIO isnt allowed and I may have to rip the guts out of my database!

Even if I had used NIO I wouldn't change anything just yet (of course, I wouldn't submit with NIO at the moment either). If you do decide not to use NIO (that is, "rip the guts out of my database"), I would recommend keeping a backup version of your code that does use NIO, just in case the outcome of all this confusion is that NIO is OK to use.
Hope this helps,
George
Ulrich Heeger
Ranch Hand

Joined: Jun 06, 2003
Posts: 266
Hi Leo,
I think you should make your ComboBox editable.

Like Morgan wrote:
So the people (including me, I'm guilty) providing the ability to do wildcard matching are doing something extra that is not required and is beyond the scope of the project.

So I suppose that I don't have to make my ComboBoxes editable.
Comments?
Also, your advice pointed me to the necessarity to provide also a refresh for the comboboxes.
Thanks
Ulrich
George Marinkovich
Ranch Hand

Joined: Apr 15, 2003
Posts: 619
Hi Ulrich,
Originally posted by Ulrich Heeger:
So I suppose that I don't have to make my ComboBoxes editable.
Comments?

My sole reason for making my combo boxes editable was to support wildcard matching. So I think what you say is true. If you're not allowing wildcard matching, then there seems to be little reason to make the combo boxes editable. On the other hand it doesn't really cost you anything to leave them editable if they're already editable. Maybe it would make the user who insists on typing everything happy.
Hope this helps,
George
[ February 12, 2004: Message edited by: George Marinkovich ]
Leo Tien
Ranch Hand

Joined: Sep 10, 2002
Posts: 156
Hi Morgan:
Why the EXACT checkbox?

Because in my defaut GUI, the 'exact' checkbox isn't checked, on this condition, when the user select 'Fred' on the ComboBox, it will match 'Fred' and 'Freddy'. Then when is checked, will match 'Fred' only.
Hi Ulrich:
Make ComboBox editable, one reason is George point, another like Ken said it was nicer from a usability standpoint.
Also, your advice pointed me to the necessarity to provide also a refresh for the comboboxes.

This is do the reflection on the db when the db is modified. Ken support this in his search mechanism, he said : "As the user searches, newly discovered unique names and locations are automatically added to the lists."
Make sence?
Ulrich Heeger
Ranch Hand

Joined: Jun 06, 2003
Posts: 266
Hi George, hi Leo,
thanks for your help. I think also that you both are right concerning the editability of the comboboxes. There is also an important point to do so.
Because the refresh of the Comboboxes has to be executed explicitly, I mean, when for example the user makes a search for "any" and find new names, like Ken suggested.
Thus, with the editable combobox I enable the user to search for records with new names which has been added to the db in the meantime. These new names may not been displayed in the Comboboxes because the user hasn't proceed any action at the GUI and thus the application couldn't refresh the comboboxes. Of course, the user has to anticipate the names he is searching for, otherwise the "any" - searching value will be sufficient.
Greetings
Ulrich
[ February 13, 2004: Message edited by: Ulrich Heeger ]
Ulrich Heeger
Ranch Hand

Joined: Jun 06, 2003
Posts: 266
Hi,
Just two questions.
I'm asking myself how I should handle the exact matching since the findByCriteria(criteria)-method of Data enables wildcard search. I suppose I should do that in my business find-method of my RoomAdapter - Class. Thus I should add one boolean argument which specifies if the search conforms to the exact matching or not:

1. Comments?
2. I'm just asking myself if the findByCriteria-method of the Data-Class should proceed a case sensitive search. Because I have implemented this method in the way that it makes a case insensitive search.
If the user asks for "fred" he will find "Freddy", but now I'm unsure if I violate the requirements. Can you help me?
Thanks in advance & Greetings
Ulrich
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: NX: Will they think my GUI is too simple?