public final JComponent getSwingComponent() {
   if (EventQueue.isDispatchThread()) {
     if (component == null) {
       component = createSwingComponent();
       label = new LabelBinding(component);
       label.addPropertyChangeListener(new LabelListener());
       registerControl("label", StringProperty.create(label, ""));
       initControls();
       layout = new LayoutBinding(component);
       registerControl("layout", StringProperty.create(layout, ""));
       updateLabel();
     }
     return component;
   } else {
     return null;
   }
 }
 protected boolean isLabelOnParent() {
   return label.isLabelOnParent();
 }
 protected String getLabel() {
   return label.getBoundValue();
 }