Geertjan's Blog

  • February 12, 2007

About Those New Icons...

Geertjan Wielenga
Product Manager
There's lots of discussion in Lukas's blog and Roumen's blog about new icons that will be used in 6.0. Inevitably and unsurprisingly, some people like the new icons and some people don't. If we're going to change icons anyway, then I don't understand why we don't provide selectable sets of icons (and also let people register their own sets) instead. Then you'd be able to choose which set you like, for example the "Classic" set or the "Modern" set or "My Own Silly Set". The Options window seems the perfect place to do the selecting and registering.

The unfortunate thing is that, for this to be possible, there'd probably need to be some fundamental changes in the NetBeans sources. For example, if you look for the source of the CutAction, you'll find this somewhere in openide/actions:

public class CutAction extends CallbackSystemAction {
protected void initialize() {
public Object getActionMapKey() {
return javax.swing.text.DefaultEditorKit.cutAction;
public String getName() {
return NbBundle.getMessage(CutAction.class, "Cut");
public HelpCtx getHelpCtx() {
return new HelpCtx(CutAction.class);
protected String iconResource() {
return "org/openide/resources/actions/cut.gif"; // NOI18N
protected boolean asynchronous() {
return false;

So, this means that the location and name of the icon "cut.gif" are both hard coded right here in the sources. Should you want that icon to be different, you'd need to create a module suite in the IDE, and put a different icon (with the same name) in the correct location in the branding folder:

That's not exactly ideal. I don't see many users wanting new icons so badly that they'd create a branded version of NetBeans IDE, just for that purpose. (Although, as you can see, this is completely possible.) If icons were to be offered in sets in the Options window (with the additional possibility of letting users register additional sets), the source code would need to be changed for that to happen. There'd need to be an API for changing existing icons in NetBeans Platform applications. Now that would be cool.

Join the discussion

Comments ( 7 )
  • Buko Obele Monday, February 12, 2007
    It'd be even better if netbeans had the concept of a 'theme'. This could include the current icons and the L&F and some other concerns. I don't understand why in the current design an action gets to decide what icon represents it. This decision should be left to another object based on the action's class and context.
  • Geertjan Monday, February 12, 2007
    Hey, cool idea. We could have 'skins' and stuff like that, change the whole ui at the click of a button. However, in terms of the time it would take to design and implement this feature, I guess this would not rate very highly. I mean, it makes sense to me that resources should be spent on, for example, making sure the IDE supports Java EE 5 and beyond, before giving users the possibility to redesign the 'look' of the IDE at the click of a button. So, in terms of priority, my guess is that this area doesn't come very high up on the list.
  • Bogdan Iamandei Saturday, February 24, 2007
    Oh, I don't know... it's a programming environment, right. Something you're staring at for a good part of your time. Probably the last thing you need is an AFS (Aggro Fruit Salad) interface. To me, it should be simple and uncluttered, leaning towards austere.
    Hmm, themes! :)
  • Toni Epple Wednesday, March 14, 2007
    I totally agree that it would be very helpful to have an API for changing the icons in NetBeans. Personally I don't care what my IDE looks like, but when I use the rich client platform I would rather have the control over the look of the product, including the icons.
  • Geertjan Wednesday, March 14, 2007
    Toni, I've seen a proposal for such an API floating around internally, about a month ago, so work is definitely being done in one way or another on this. I'm looking forward to it too.
  • Toni Epple Wednesday, March 14, 2007
    Just found this related request for enhancement by Jesse:
  • Toni Epple Wednesday, March 14, 2007
    Very cool, can't wait to see this... If you hear any news, please let us know!
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.