I can recommend you to look on Druid - Component GUI Framework
Druid allow you to create reusable custom GUI components