用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/JohannesRabauer/javafx-skills --skill javafx-properties-bindings命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | javafx-properties-bindings |
| description | Build JavaFX UIs with core observable properties, bindings, and listeners. |
| triggers | ["javafx property binding","simpleintegerproperty","javafx changelistener","bind bidirectional"] |
| compatibility | {"java":"17+","javafx":"21+"} |
| category | ui-core |
| tags | ["properties","bindings","listeners","state","events"] |
| metadata | {"scope":"repository","maturity":"starter"} |
| allowed-tools | ["view","rg","apply_patch"] |
Use this skill when UI state should stay synchronized without manual widget updates scattered throughout the codebase.
import javafx.beans.binding.Bindings;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
public class CounterView extends VBox {
private final IntegerProperty count = new SimpleIntegerProperty(0);
public CounterView() {
var label = new Label();
label.textProperty().bind(Bindings.format("Count: %d", count));
var increment = new Button("Increment");
increment.setOnAction(event -> count.set(count.get() + 1));
getChildren().addAll(label, increment);
}
public IntegerProperty countProperty() {
return count;
}
}
javafx-reactive-binding-state when the requirement moves beyond core properties into event
streams, reducers, or cross-client state synchronization.基于 SOC 职业分类