I came across an awesome UI Concept for what could have been the desktop UI for Windows 8 yesterday whiles reading around on the Windows 8 blog. I immediately fell in love with the UI and personally WISHED this is what Microsoft should have come up with along side Metro as an upgrade to the Windows Desktop Experience.
After drooling over the UI for God knows how long and reading up on the comments, I asked myself, “How easily can such a UI be created for a Java Desktop (Swing/JavaFX) Application?”
I’ve taken the time to look around the Internet for Look and Feels for Java that come anywhere near this UI Concept and I have not found any as yet. I tried playing around briefly myself and realized the concept can be achieved but requires a bit of hard work (what doesn’t).
All in all I think the UI Concept is just the bomb, and personally I would be glad if Synthetica or Substance L&F had such a theme. It would be serious hit in my opinion.
Let me know in the comments what you think about this UI concept as well as the potential for coming up with something this stunning for a Java Swing/JavaFX application today.
There have been a lot of complaints in the past about poor performance and a lack of some basic functionality for that component. There were even some mentions of the component being replaced with a Native Implementation sometime back, but there has not been any concrete word on that. Personally, my current pet peaves with the component include:
Way too minimal right-click PopupMenu – only New Folder, Rename, View and Refresh are implemented. This minimal popup is also way to difficult to extend by the entry level user. Also, drag and drop file handling is implemented, so why is it so difficult to include Open/Select, Cut, Copy and Paste as basic options in the default popup menu?
Poor performance for listing directories and their contents when zip archives are included
Lack of decent Directory View (possibly as a tree)
Ability to use “\\<pc-name>” option on a Windows based system to navigate to a network location
Other more advanced users have other problems with the component but these are the few I feel are general problems and could be fixed or improved.
The current “Open Project” and “Open File” implementations in the Netbeans IDE seem to have some very useful implementations of the JFileChooser and some have even advocated that those components be ported back into the main JDK source if possible, but that is yet to be seen or determined.
All in all, I think the JFileChooser component needs some attention, because it certainly is starved for some.
After hearing about Oracle’s new Road Map for the JavaFX 2.0 release expected to be made available next year, I found it sort of funny to realize the similarity between what it took for Java to become successful and what it probably is going to take for JavaFX to be become successful.
Up until version 1.6 of the currently successful Java Platform, it carried the brand “Java 2 Platform v1.x” and this was basically the platform I met when I begun my programming career. According to Wikipedia:
J2SE 1.2 (December 8, 1998) — Codename Playground. This and subsequent releases through J2SE 5.0 were rebranded Java 2 and the version name “J2SE” (Java 2 Platform, Standard Edition) replaced JDK to distinguish the base platform from J2EE (Java 2 Platform, Enterprise Edition) and J2ME (Java 2 Platform, Micro Edition). Major additions included reflection, a Collections framework, Java IDL (an IDL implementation for CORBA interoperability), and the integration of the Swing graphical API into the core classes. a Java Plug-in was released, and Sun’s JVM was equipped with a JIT compiler for the first time.
So what is similar in between Java and JavaFX at this point? That will be their version number. It seems Java and JavaFX will potentially owe their success to their “second” major version. From the road map presented by Oracle and the expected changes with respect to API, language and integration changes, I expect if finished in time and coupled with a possible Java 7 release around the same time, JavaFX 2.0 is set to become the next best thing in the RIA and Java UI development arena.
I so far have not used JavaFX for anything more than a demo app and an attempt at making a Flash type web banner animation. But with the proposed changes, I feel I can immediately drop JavaFX 2.0 into my current application to pimp up the UI and deliver a whole new user experience for the next version of the application. So I only hope Oracle lives up to the current road map and plans and deliver a kick ass platform with all the proposed widgets and finally what seems like JWebpane.
After months of working with PHP and AJAX, I finally found time and a reason to go back to Java Swing. This simple application, made at a friend’s request, enables one to determine his/her Ghanaian name based on their date of birth. With all the time I have spent working with PHP and AJAX, I have come to love the JSON data exchange format and I simply could not pass up the opportunity to see how it performs and works with my latest Java Swing incarnation. The application also includes the new Swing Task Dialog component and makes use of the Joda Time API. Continue reading “Using JSON in Java Swing”→
Most often when developing Java Swing applications, we need to use several layout managers in several nested panels. This is usually not a problem and is considered the normal practice for all UI development in almost all languages known to man. However, most often for each panel in the UI only one layout manager is needed to achieve the desired effect, but there comes a time when you need to use multiple layout managers for the same container depending on the number components in the container.
One such example would be when creating a Centered Grid like layout. Most often, GridLayout or GridBagLayout may suffice if the number of components are fixed but if the number of components keep changing, the layout may not be as desired. I faced such a similar problem this afternoon, and here is the solution I came up with. Continue reading “Sometimes in Java, One Layout Manager Is Not Enough”→