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.

Respuestas a la pregunta(4)

Su respuesta a la pregunta