Platicando hace algunos días con algunos ingenieros sobre las causas que obligaron al team de Microsoft Office a rediseñar por completo su interfaz gráfica (Chequen las ponencias del MIX08), coincidiendo todos en que efectivamente fue muy buena y fundamentada solución crear componentes Ribbon para mejorar la experiencia de los usuarios (Pensando en un proceso de: búsqueda, diseño, prototipado y evaluación).
Fundamentado en estas mismas razones se ha desarrollado el proyecto Flamingo el cual fue presentado en el JavaOne de este año con bombo y platillo; puesto que se encuentra mas estable que nunca.
Este proyecto tiene soporte para la mayoría de los contenedores, botones de comandos, tooltips etc. que de igual forma existen en Ribbon.
Siendo cortos realice algunos demos, uno de los que me llamo la atención fue la barra para buscar archivos del sistema BreadcrumbFileSelector
import java.awt.BorderLayout;
import java.io.File;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import org.jvnet.flamingo.bcb.core.BreadcrumbFileSelector;
/**
*
* @author Gabriel Mtz. Nájera
*/
public class FileTreePanel extends JPanel {
private BreadcrumbFileSelector bar;
public FileTreePanel() {
this.bar = new BreadcrumbFileSelector();
JPanel navigation = new JPanel(new BorderLayout());
navigation.add(bar, BorderLayout.CENTER);
this.setLayout(new BorderLayout());
this.add(navigation);
this.bar.setPath(new File(System.getProperty("user.home")));
}
public static void main(String[] args){
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame frame = new JFrame("árbol de archivos");
frame.setSize(800, 80);
frame.setLocationRelativeTo(null);
frame.add(new FileTreePanel());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}
Recomiendo lean la API
org.jvnet.flamingo
para mas detalles, si bien el proyecto ya tiene su rato, siento que a partir de su presentación en el JavaOne 2009 despegará con mayor fuerza. Descargas
Saludos.