Hello,
I am trying to design an java desktop application. My question is: Is there a way to change the whole look? From example different titlebar, different jFrame, buttons... (designed with PNG images, transparency, etc.). Is it possible? If so, how? In VB or C# I can easely change those... E.G.: Make the FORM "borderless" then I add my own buttons with background image, etc. It is so important to me... I work on a project that requires not only developing but design too. please help if you can :). Thanks.

Recommended Answers

You can customize all kinds of things about how the UI appears. A lot is possible with the methods provided by the Swing components, but if that isn't sufficient it's possible to use the the pluggable look and feel and custom UI delegates to gain a greater degree of customization. …

Jump to Post

It all comes down to the details of "changing the look". Some things are trivial, others are quite complicated. You asked a very general question.

If you just want to set the frame to be borderless, use setUndecorated(true);

Jump to Post

All 6 Replies

You can customize all kinds of things about how the UI appears. A lot is possible with the methods provided by the Swing components, but if that isn't sufficient it's possible to use the the pluggable look and feel and custom UI delegates to gain a greater degree of customization. Here is an overview of that architecture: http://java.sun.com/products/jfc/tsc/articles/architecture/

Thanks for the link... however I look for a less complicated way to do this... I found this link: http://pforfun.blogspot.com/2008/11/java-transparency-tutorial.html but I don't know if is a good idea. It gives me an exception at this instruction:

AWTUtilities.setWindowOpacity(Window.getWindows()[0], 0.8f);

Exception:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: The effects for decorated windows are not supported.
at com.sun.awt.AWTUtilities.setWindowOpaque(AWTUtilities.java:389). Thanks for interest in helping me.

It all comes down to the details of "changing the look". Some things are trivial, others are quite complicated. You asked a very general question.

If you just want to set the frame to be borderless, use setUndecorated(true);

Thanks Ezzaral. Useful post.
After some hours of searching I think I found how to change the look as I wanted and it's useful for all (who did not find it yet).
The "Synth" Look and Feel: http://java.sun.com/docs/books/tutorial/uiswing/lookandfeel/synth.html. It's and XML describing how components / regions can be fully customized :). So I guess I mark this thread as solved now...
Do you know something about "Nimbus" project?
http://java.sun.com/docs/books/tutorial/uiswing/lookandfeel/nimbus.html
It's based on Synth . I was searching for Nimbus designer but didn't find it yet. Nimbus should be part of java 7 they say.
Thanks again. Have a nice day :)

No, I hadn't seen anything about Nimbus as yet. It looks pretty nice.

Here at work we just use the XP look and feel and all of our time is taken up working on functional requirements. We don't have much time left to play with UI customizatoin. =\

I know. As a matter of fact... my project must be made for a "Software Engineering" Course (at University) and I'm leading a team so I was told we must also visually design our application coded (by me) in java. Everyone has a task... so I gave my designer his job to do :). Have a nice day!

Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.19 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.