Cree un componente Swing basado en otro pero con API diferente
Me gustaría crear un nuevo Swing JComponent basado en uno existente, pero con una API diferente. En otras palabras, no quiero extender el componente existente, porque no quiero que su API sea accesible.
Aquí un ejemplo para aclarar mis necesidades:
Un reemplazo de laJCheckBox
que muestran dos botones ON / OFF. Esto podría basarse en unpreconfigurado JCommandButtonStrip
(alguna informaciónaquí) pero exponiendo exactamente la misma API deJCheckBox
. La configuración de laJCommandButtonStrip
No debe ser alterado.
¿Cuál es el mejor enfoque para tal problema?
Aclaraciones:
Como alguien señaló, lo que escribí sobre API no está claro.
Por supuestoJComponent
tener una serie de campos y métodos públicos que estarán disponibles para cada subclase. Entonces cada subclase deJComponent
puede agregar sus propios campos y métodos públicos. Por ejemplo,AbstractButton
agrega elisSelected()
método, mientrasJCommandButtonStrip
agrega elgetButtonCount()
método.
Entonces, lo que quise decir es: quiero crear un nuevoJComponent
subclaseMyJComponent
, que se basa en uno existenteExistingJComponent
. No quiero los métodos públicos deExistingJComponent
, excepto los deJComponent
, ser expuesto por mi claseMyJComponent
. Entonces quiero agregar algunos métodos públicos paraMyJComponent
.
Tenga en cuenta que no estoy buscando una alternativa alJCommandButtonStrip
/JCheckBox
ejemplo. Estoy interesado en un enfoque general para tal problema.