Take the 2-minute tour ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

I quote 2 images from Google.

image1 image2

Look at the tabs. They are totally different. I have just finished migrated to OS X. I always believe that OS X provides a uniform user interface to make their apps more elegant. Additionally, How to turn app's UI in the second image to look like that in the first image?

share|improve this question
1  
Your proof is from same program but a different build version. What is programmed in java doesn't mean Apple has control over it and says that is how it has to look. Apple is good and the Mac App Store helps keep people safe but how a program looks is up to the egg head that writes the code –  Andrew U. May 6 at 13:14
    
If you are actually writing the code I think this is off topic and get the details in StackOverflow - but they will expect to see the code that you have that attempts to change the look and feel –  Mark May 6 at 13:47
    
@Mark You are correct, but at a high level, there is value in discussing the why and how an app is assembled without needing to get into system calls and specific versions of SDK/interface libraries. –  bmike May 6 at 14:13
    
@bmike - I agree which is why I answered but this is not the site to tell the OP how to change the code- the question does not have enough information to know exactly what the OP wants - although most likely the general overview I supplied –  Mark May 6 at 14:17

2 Answers 2

up vote 3 down vote accepted

The same Java code (mostly) runs on all OS/architectures. It has several different APIs to draw forms/windows. Some of these APIs e.g. Swing allow you to change look and feel between emulating different widget sets. So a program can be written so that it allows the user to change the look and feel.

The look and feel that is supplied includes OSX (as in the top screenshot) and Windows(several forms) or Motif or GTK. The way to set this in Swing and for more information see this Oracle document Note that even the OSX Look and feel does not full match Apple's guidelines e.g. positioning of the menu in the window and not at the top of the display.

Like any Windowing system you can always write programs that behave and look different to the expected standard. It happens that for OSX most developers stick to Apple's guidelines, but even using Apple's supplied APIs you can have a different feel between Carbon(originally Mac OS <= 9) and Cocoa programs(originally NeXT). The AppStore allows Apple to have a bit more control but I do not know if meeting display guidelines is actually checked.

share|improve this answer
    
It's not even the same version of the app (1.3.03 vs 1.4.12) –  Matthieu Riegler May 6 at 13:46
    
@MatthieuRiegler - My answer still stands except that the writer might not have allowed the user to change look and feel or might even have change the Java API he uses –  Mark May 6 at 13:49

Java is simply the container and the language chosen by the programmer to describe how a picture should get drawn. Using java means that the developer ignored the standard OS X interface elements that Apple provides to developers along with user interface guideline documents. This example is precisely why java code is often seen as a second class citizen among people that expect typical Apple quality software to run on their Mac.

Think of a restaurant. The directions to the staff could be written in french and the containers that the food gets delivered could be folded paper boxes coated with wax on the outside. It still wouldn't change what you got if one recipe was for northern italian food versus northern indian food.

Java alone doesn't proscribe how a button looks - just the library and code to draw the GUI and in your example, different ingredients were placed in the same container with the expected different results.

share|improve this answer
    
Not so much that the developer decided to ignore the standard interface elements but more that Java does not give access to native widgets and so has to use some emulation and I think none of them are 100% so forcing the developer to look bad –  Mark May 6 at 14:20
1  
@mark My point is that the developer chose to not adopt Apple's tools and code by choosing java as the container for the UI portion of the app. Again, with enough funding and time you could write from scratch a perfect re-implementation of Apple UI entirely in java - but the cost and performance might make this a ridiculous exercise. –  bmike May 6 at 14:23

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.