Loading skill
Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Build JavaFX forms, validation flows, suggestion inputs, and preferences screens with clear state ownership.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | -14% | 0% |
| case-02 | ✓→✗ | ▼ Worse | 4% | 0% |
| case-11 | ✓→✗ | ▼ Worse | 19% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 17% | 0% |
| case-04 | ✓→✓ | = Same ✓ | -21% | 0% |
Use this skill when the application needs structured data entry, validation feedback, settings screens, or preference persistence. This is the focused slice left after splitting broader ecosystem-oriented concerns into their own skills.
javaimport java.util.prefs.Preferences; import javafx.beans.binding.Bindings; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.TextField; import javafx.scene.layout.VBox; public class SettingsForm extends VBox { private final Preferences preferences = Preferences.userNodeForPackage(SettingsForm.class); public SettingsForm() { var endpointField = new TextField(preferences.get("endpoint", "")); var errorLabel = new Label(); var saveButton = new Button("Save"); errorLabel.textProperty().bind( Bindings.when(endpointField.textProperty().isEmpty()) .then("Endpoint is required") .otherwise("") ); saveButton.disableProperty().bind(endpointField.textProperty().isEmpty()); saveButton.setOnAction(event -> preferences.put("endpoint", endpointField.getText())); getChildren().addAll(new Label("API Endpoint"), endpointField, errorLabel, saveButton); } }
FXForm2, or PreferencesFX when the project truly benefits from them.
not fight each other.
Other measured skills in the registry, with their headline benchmark lift.