Creando Widgets personalizados

GWT permite que la creación de widgets personalizados sea muy fácil, usando el lenguaje Java.

Composites
Los composites son de lejos la manera más efectiva de crear widgets. Puedes fácilmente combinar grupos de widgets dentro de un composite que es en sí mismo un widget re-utilizable. Composite, es un widget especial que puede contener otros componentes (por lo general, un panel) pero se comporta como si el fuera su widget contenido. Es preferible usar Composite que intentar crear widgets complejos usando subclases de panel ya que un Composite usualmente controla de una mejor forma, qué métodos son publicados.

Desde Cero en código Java

También es posible crear un widget desde cero usando código en Java, aunque este método es más complicado, ya que tienes que escribirlo a bajo nivel. Muchos de los widgets básicos son escritos de ésta manera, como Button o TextBox. De momento no hay mucha documentación acerca de cómo crear widget de esta forma, pero siempre puedes referirte a la implementación de la clase Button (por ejemplo), para entender su funcionamiento.

Usando JavaScript

Cuando se implementa un widget personalizado que deriva directamente desde la clase Widget, puedes escribir algunos widgets usando JavaScript. Esto debe ser utilizado únicamente como un último recurso, además es conviene considerar las implicaciones que puedan tener los métodos que escribes sobre el tipo de navegador usado, es decir, ser cuidadoso para que tu código corra sobre cualquier navegador; y no solo eso, crear widgets con JavaScript también es más difícil de depurar. Para un ejemplo de esto, ver el widget TextBox y su implementación baja.