JTabbedPane: Componentes antes y después de las mismas pestañas
-
23-08-2019 - |
Pregunta
Esto es similar a la pregunta ¿Cómo construir un menú de pestañas y la interfaz de Google-Chrome en Java swing (que quiero lograr lo mismo), pero más al punto: ¿Cómo pongo componentes delante y detrás de las pestañas en una JTabbedPane?
Ya hemos llegado con los botones de la idea de mí mismo, pero yo prefiero tener un JTabbedPane, ya que es realmente lo que es, pero está decorado con un botón o iconos en los lados.
He visto que el proyecto LAF-Reproductor de Kirill hace algo por el estilo (el icono de lupa a la izquierda de las pestañas) durante varios SIAL. Sin embargo, debo admitir que no estoy aún así lo suficientemente versado para entender cómo lo hace - y también parece ser un proceso algo complicado, en el que uno "físicamente" cambiar las FAL en cuestión (código de bytes manipula), la inyección de la LAF -Widget cosas en los delegados de interfaz de usuario -. y yo todavía no sé cómo el JTabbedPane o TabbedPaneUI es en realidad modulados para inyectar ese icono / botón
Solución
Finalmente le pregunté Kirill de de sustancias LaF / LAF-Reproductor de cómo se las arregla para poner un botón en el frente de las fichas de la LAF-widget que decora JTabbedPanes, y esta es su respuesta:
Se basa en el campo BasicTabbedPaneUI.tabAreaInsets para hacer espacio para el botón, y setBounds personalizados del botón componente para posicionarse en que zona.
Para obtener más código, consulte TabOverviewButton y clases en TabOverviewDialogWidget el proyecto LAF en widgets.
En general, la interfaz de usuario TabbedPane delegado es uno de los menos los atractivos para mejorar, ya que tiene mucha privada y el paquete métodos protegidos
Gracias, Kirill!
Otros consejos
JIDE tener un panel con separadores como parte de su conjunto de componentes que expone esta funcionalidad tan simple setBeforeComponent () y setAfterComponent () métodos.
Hay una demostración de ello aquí: http://www.jidesoft.com /products/1.4/jide_demo.jnlp