UI for a Desktop App - java

I have a desktop application . The functionality is complete, but user interface requires a lot of work. I am looking for UI tools.My current operating system is Windows and application is required to run on both Windows and Linux.
Can you guys recommend any?
The software is customized file management application for a specific client, with future plans of web integration.
Thanks in advance :)
Application Environment
Lang : java,
IDE : Eclipse 3.4,
Target Platforms : Windows Vista-OpenSuse 11

SWT is another option. The advantages are a look-and-feel closer to the native platform, and generally faster execution times. The main disadvantage is that you will have to have different distributions for different target platforms, as SWT depends on platform specific libraries.
With an eye toward the web integration, look at GWT. You write your interface in Java but it gets generated into Javascript and can thus be run in a browser. This may make your deployments easier. On the downside, you lose a bit of the rich client UI, but maybe you don't even need that. It all depends on how complex your UI is.
A word of advice: you mentioned future plans of web integration. Take special care to isolate what logic you can from the UI. Keep the UI as clean as possible, and then you may be able to use the same logic in the web UI either on the client or the server.

If you are just looking for a GUI designer you could check out Netbeans IDE which has a built-in Swing user-interface builder.
Alternatively you could build a front-end in JavaFX. There's not much tooling for FX yet but a new tool was recently previewed at JavaOne 09. Not sure when it's being released.

I've used Qt a few times and find it very good at this sort of thing -
Qt Home Page I'm not sure if it's exactly what you're looking for as your application is complete, however, but it may be worth a look.

Found an excellent fix,
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
SwingUtilities.updateComponentTreeUI(myform);
looks so cool in my vista and suse , its enough for now.
Thanks for everybody for helping out

Related

what should I use eclipse rcp or eclipse scout?

i am planning to develop desktop application using java code, and wanted to use any ready
made framework and then i got know about eclipse RCP / eclipse scout but i am in doubt that which framework should i use whether eclipse rcp or eclipse scout ? could somebody suggest me please.
first of all I'd like to add another option: Eclipse Riena.
Eclipse Riena is comparable to Eclipse Scout as it is based on Eclipse RCP and provides some useful abstractions. You should have a look at it.
But to give you some help deciding which one to use:
If you are doing your first steps in Eclipse RCP, I would suggest that you first get your hands dirty with a little bit of plain Eclipse RCP. There is some complexity which will get back to you if just start with a higher level framework like Scout/Riena.
Depending on plans with your desktop application, this might already be good enough.
Scout/Riena do help you with more advanced topics like reuse/standardization, remoting, proven application architecture. But like most frameworks, you lose some flexibility.
What I especially like about Eclipse Riena:
Focus on easy to use GUI (will not fit for every project)
Abstraction over SWT/JFace (Ridgets) provides nice facility for controller tests, rendering the need for GUI tests to a minimum
Nice API to (dynamically ) structure and validate your application
Simplify remoting (no Java EE container dependencies on the client)
You can use parts of Riena independently. Say you can use the ridgets without adding the whole bunch of other perhaps not needed stuff.
What I like about Eclipse Scout
Strong focus on integration in Java EE environment
Wizards all over: Quite simple to create a first and second shot of your GUI
Supports swap of your GUI technology: You can move from SWT to Swing quite swiftly, though I wouldn't bet that is easy for a large application. ;)
HTH
Regards,
Holger
I can't comment/judge about your comments regarding Riena. However, I'd like to add some comments/clarifications regarding Scout
The fact that Scout comes with the Scout SDK tooling is a big help to beginners. This makes it ideal to get started with writing desktop applications. As the output of all the wizards is only Java code and some needed wiring in plugin.xml etc. it means that you're free to do Scout applications without using the Scout SDK (you can even have mixed teams working on the same code). This is possible as the Scout application model is just a bunch of Java classes.
Holger rightly mentions that you can swap the UI technology with Scout applications. This is possible as the programmers writes the model of the UI. For each supported UI technology (currently Swing, SWT, RAP (for web applications)) a specific plugin will actually draw the UI depending on the available UI model. This is a very clean separation of the UI technology and the application model. Therefore swapping works even for very large applications (Of course there are some exceptions to this rule: If your desktop application has some Microsoft Office integration part on the client side you will find it hard to support that in a web application).
Try some of the Scout tutorials and let us know what you think in the forum.
Best regards
Matthias

What are some alternatives to Java Web Start for executing outside of the browser sandbox?

I'm looking for a method to deliver my thick client software to intranet users through a browser. Ideally, the user could click a single button on the page, and something local to the machine would execute the software (similar to how Java Web Start works.)
Are there any alternatives to Java? I really like the experience provided by Spoon.
I see something called 0Install, which sounds like a non-Java web start. What is the experience like? Are there other alternatives I should consider?
It depends a bit on which platforms you want to support. 0install works best on Linux/Unix (e.g. the GUI is native GTK). On MacOS X the GTK UI looks a little out of place, although there are plans for a native UI. Windows has its own .NET-based GUI; it's quite new but improving fast.
Note that you can use 0install even for Java programs, which has some advantages. For example, I recently used it for a Java program with a dependency on GraphViz (a non-Java utility).
[ note: I am a 0install developer ]

To JavaFX [1.3] or not?

We are starting a new Desktop application and considering using javafx but we are a bit confused given the recent announcement by oracle that javafx scripting is not going to be developed further.
Since we cannot wait for javafx 2.0, is it a good idea to use the version 1.3 (which) or should we look at a different technology?
Your opinion will be very much appreciated.
JavaFX 2.0 has been released General Availability http://javafx.com
and http://javafx.com/downloads/all.jsp
and the roadmap has been updated http://javafx.com/roadmap/
You should have a close look at the license for JavaFX, particularly the provisions for distribution if you are developing a desktop application.
My understanding of the current 1.3 license is that distribution of the run-time is prohibited, except through Java Web Start. This is pretty much a deal-breaker for us on the desktop.
There has been an ever increasing trend away from desktop applications to web applications recently, and the advantages are large. Browsers are becoming more sophisticated, so you can do many desktop like features via a browser (and if you are considering JavaFX, then HTML based technologies may give you everything you need).
Also, a web application gives you the flexibility to update your code without having the user update it for you. Most browsers also allow you to launch in application mode (e.g the Chrome -app switch), which locks down the browser to specifically only point at your application.
If you truely want a real desktop experience though, then Swing or SWT should be sufficient for your needs.
Another alternative is Pivot.
Rumors of JavaFX script's death have been greatly exaggerated. It lives on, and is now called Visage.
While development is not incredibly active, over the last 30 days there have been 9 check-ins from 4 different people.
"Wounded"? Sure. "Dead"? Nope.
You could also use adobe flex. This is the technology that appears to be winning this war right now. I really liked the idea of using JavaFX with existing java work. I scrapped the idea because it would be really irresponsible to a) use a dead technology that looks like Oracle will not support in the future b) waiting on vaporware is not a good strategy (their JavaFX 2.0 future api).
Someone also mentioned apache pivot. Not sure how mainstream that is or what it's future support will be. According to their about it is a mainstream project:
"Pivot joined the Apache Incubator in January 2009 and graduated as a top-level Apache project in December 2009. It is currently driven entirely by the software development community."
I would run, not walk, away from JavaFX 1.3...
JMHO
Java FX2 allows you to leverage existing Java technology. I don't know how you would manage file access etc with html5-javascript. I am using JavaFX2 currently for my project and am happy with it.
No doubt that the javafx is improving further and oracle is extending functionality of javafx.
recently oracle announced early release of java 8 in which javafx is inbuilt and is having excellent controls.

Eclipse RCP application without Eclipse GUI

I'm working on a swing application. I don't want to migrate it to SWT, but I'd like to use some benefits of Eclipse RCP application. Especially, I want to use the update technology to distribute application updates.
It would be great if you knew a tutorial on how to build an Eclipse RCP application that can start a custom GUI based on Swing.
Uhm... I don't think you'll be able to get there with the eclipse rcp...
There's a lot you'd have to adopt, including the whole OSGI structure for your app -- if you're unwilling to change your UI toolkit you've probably already got too much infrastructure in place to want to adopt that much of the RCP.
If it's just swing your married too for whatever reason, look into the netbeans rcp.
If it's just updating you want... there's more then 1 sparkle implementation for java.
Check this:
http://www.eclipse.org/articles/article.php?file=Article-Swing-SWT-Integration/index.html
However, I strongly advise against using them. You will end up with a lot of issues with platform independence. If you're just aiming at Windows, you might be fine.
I agree with lscoughlin, you're getting way too much overhead for that bit of functionality. You can always try to take the bits you need out of the Eclipse/Equinox project, thereby building a leaner solution. Be aware of licensing then. Looking at some parts of the code for inspiration can be helpful too, but it's a huge project.
Tough task... but you can try qwylt.
It is a framework based on Equinox (Eclipse OSGi implementation). Hopefully it will provide enough functionality for you.
Generally your request could be realized with the new Eclipse 4. In the new model all graphical output is done with so called Renderers which render the application model into the grapical output you see with your application. Lars Vogel has a Tutorial on those and Kai Tödter even did a brief article on different renderers in JavaFX 2.0, Swing & SWT Renderers for the Eclipse 4.x Application Platform.
He also did a basic SWING renderer which is available on https://github.com/toedter/e4-rendering I can however not tell on how stable this renderer is and to what extent it covers all application model elements provided by e4.

RIA platform like Netbeans RCP

Does anyone have any experience with a really good RIA platform. I'm going to begin developing an application, and I intend to use Netbeans RCP for the thick client. I'd also like to create a RIA version of the same app. I've looked around for a RIA framework that rivals what you can get with the Netbeans RCP, and really haven't found one. My requirements are as follows.
Modular - I would like to be able to add and remove features without recompiling
Out of the box features - I'd like to have feature out of the box that are similar to Netbeans RCP (or most any other RCP), such as a menu system built in, a windowing system (allowing docking and remembering where windows were between sessions), Authentication and Authorization support out of the box, as well as the "Options' pane support (I really like how I can add amodule, and have that module expose options through the standard "options" dialog).
Actions and commands - I'd like to be able to handle actions from other modules without needing to couple the action to the other module.
I would like to deploy the app through GlassFish, but that's not a deal breaker.
Modern - the framework should use the latest standards, and I'm planning on moving to J2EE7 as soon as I can, so the platform must be actively updated to support such a migration.
I'm willing to pay, but the license must not be "per server" or "per instance"
Java isn't a must but I'm planning on using java for the rest of the app (services layer) and the Netbeans RCP front end.
I've been a .net developer for the last 6 years, and have just recently looked into the world of java, and I'm really amazed at the rich community, I thought .net had a large open source community, but the java one is orders of magnitude bigger. I don't know of anything even close to the Netbeans RCP in the .net community, let alone a RIA version.
I've looked at a few frameworks, but most of them seem to be mostly libraries that you can use to build applications, I really don't want to spend the time and maintanance cost to build the infrastructure listed above. Things I've looked at are....
Tepestry
"SmartClient"
GWT
Wicket
These all seem to be good building block, but I want an out of the box solution. The application will be mostly CRUD operations, but I will also be streaming video through the app, as well as handling alerts and events from the server.
Thanks for any advice
Joshua
Eclipse with the GWT plugin is fairly easy to get running out of the box. Step through the GWT tutorial first and you'll be ready to go. I realize you've already looked at GWT but the Eclipse plugin simplifies a lot of grunt work.
Indeed. GWT Eclipse plugin simplifies compilation, depoloying and running them (Jetty). It also has App Engine support.

Categories

Resources