public static <Z extends HasDefaults>SettingInputComponent<Z> buildTextComponent(final String label,final String description,final JTextComponent component,final Function<Z,String> settingsModelReader,final BiConsumer<Z,String> settingsModelWriter,final InputValidator... validators){
  JPanel panel=new JPanel();
  panel.add(component);
  return build(panel,new LabelDescription(label,description),new SwingComponentReaderWriter(null,null),new SettingsModelReaderWriter<>(settingsModelReader,settingsModelWriter),validators);
}

public static < Z extends HasDefaults > SettingInputComponent < Z > buildTextComponent ( final String label , final String description , final JTextComponent component , final Function < Z , String > settingsModelReader , final BiConsumer < Z , String > settingsModelWriter , final InputValidator ... validators ) { JPanel panel = new JPanel ( ) ; panel . add ( component ) ; return build ( panel , new LabelDescription ( label , description ) , new SwingComponentReaderWriter ( null , null ) , new SettingsModelReaderWriter < > ( settingsModelReader , settingsModelWriter ) , validators ) ; }
factory method to create instances of this interface , backed by textfield component types
