Skip to main content

Flamingo 4.1 official release

Posted by kirillcool on May 26, 2009 at 9:26 AM PDT

I am pleased today to announce the availability of the final release for version 4.1 of Flamingo component suite (code-named Guenivere). It is a stabilization release that adds a few minor features and fixes all known bugs.

Here is the list of minor features added in release 4.1:

  • Multi-row controls in ribbon bands
  • Rich tooltips for ribbon band expand buttons
  • Horizontal alignment for wrapped ribbon components
  • Internal tracking of disabled state of popup / action areas on command buttons for selecting the correct displayed icon
  • Tree breadcrumb adapter class is now abstract to enforce applications to provide the segment caption

To see the Flamingo ribbon component in action under core look-and-feels, run the following WebStart demo:

To see the Flamingo ribbon component in action under Substance look-and-feel, run the following WebStart demo:

If you want to test the ribbon in your applications, you would need the following (the last two only for applications running under Substance look-and-feel):

You are more than welcome to take Flamingo 4.1 for a ride and report any problems in the project mailing lists, forums or issue tracker.

Release 4.1 will be the base for the JavaOne technical session 4143 that will be held next Thursday, June 4th at 13:30 in Hall E 135. If you


After running the following code i can only see a blank ...

After running the following code i can only see a blank frame...but i'm supposed to see buttons with star,circle,square,triangle inside the frame. can some one help me out by finding the errors in this and please send me the code if anyone got the right output displayed

import java.awt.Dimension;
import java.util.Arrays;
import java.util.List;
import javax.swing.SwingUtilities;
import org.pushingpixels.flamingo.api.common.JCommandButton;
import org.pushingpixels.flamingo.api.common.icon.ImageWrapperResizableIcon;
import org.pushingpixels.flamingo.api.common.icon.ResizableIcon;
import org.pushingpixels.flamingo.api.ribbon.*;
import org.pushingpixels.flamingo.api.ribbon.resize.CoreRibbonResizePolicies;
import org.pushingpixels.flamingo.api.ribbon.resize.IconRibbonBandResizePolicy;


public class NewFrame extends JRibbonFrame {

/** Serial version unique id. */

private static final long serialVersionUID = 1L;

public static ResizableIcon getResizableIconFromResource(String resource) {

return ImageWrapperResizableIcon.getIcon(NewFrame.class
.getClassLoader().getResource(resource), new Dimension(48, 48));

* Entry point method.
* @param args
* Application arguments
public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {
private RibbonElementPriority TOP;
private RibbonElementPriority MEDIUM;

public void run() {

NewFrame frame = new NewFrame();


JRibbonBand band1 = new JRibbonBand("Hello",getResizableIconFromResource("48px-Crystal_Clear_app_Staroffice.png"));
JRibbonBand band2 = new JRibbonBand("world!", null);

JCommandButton button1 = new JCommandButton("Square",getResizableIconFromResource("48px-Crystal_Clear_app_kthememgr.png"));
JCommandButton button2 = new JCommandButton("Circle",getResizableIconFromResource("48px-Crystal_Clear_app_ksame.png"));
JCommandButton button3 = new JCommandButton("Triangle",getResizableIconFromResource("48px-Crystal_Clear_app_error.png"));
JCommandButton button4 = new JCommandButton("Star",getResizableIconFromResource("48px-Crystal_Clear_action_bookmark.png"));

band1.addCommandButton(button1, TOP);
band1.addCommandButton(button2, MEDIUM);
band1.addCommandButton(button3, MEDIUM);
band1.addCommandButton(button4, MEDIUM);

band1.setResizePolicies((List) Arrays.asList(
new CoreRibbonResizePolicies.None(band1.getControlPanel()),
new CoreRibbonResizePolicies.Mirror(band1.getControlPanel()),
new CoreRibbonResizePolicies.Mid2Low(band1.getControlPanel()),
new CoreRibbonResizePolicies.High2Low(band1.getControlPanel()),
new IconRibbonBandResizePolicy(band1.getControlPanel())));
band2.setResizePolicies((List) Arrays
.asList(new IconRibbonBandResizePolicy(band2

RibbonTask task1 = new RibbonTask("One", band1);
RibbonTask task2 = new RibbonTask("Two", band2);


frame.getRibbon().setApplicationMenu(new RibbonApplicationMenu());

 hello  Kirill Grouchnikov I'me so iterested by ...

hello; ">Kirill Grouchnikov

I'me so iterested by ur project how could i download flamingo ?

<p>Hello</p> <p>I don't download flamingo, need ...


I don't download flamingo, need help.

&nbsp;hey Amigos ...! I couldn't download flamingo, Really ...

hey Amigos ...!

I couldn't download flamingo, Really need a help.


Vineet, Accelerators on command buttons are currently not supported. If this is required in your application, please continue the discussion on the project forums / mailing lists about an option to contribute this feature to the project. Thanks Kirill

thanks..I will do that...

Hi Kirill, Nice application you created. I am using Flamingo 4.1 and need your help. I have to set accelerators for the command buttons in the ribbon bands. But, I can't find any such function existing. Is there any such support provided by you jar? Please reply ASAP. Thanks in advance, Vineet