一键导入
javafx-desktop-shell-integration
Build JavaFX desktop shells with workbenches, detachable tabs, custom stages, tray integration, and persisted layouts.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Build JavaFX desktop shells with workbenches, detachable tabs, custom stages, tray integration, and persisted layouts.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Build JavaFX 3D modeling tools and print/export workflows with isolated geometry generation and preview rendering.
Choose and integrate mature third-party JavaFX control libraries for forms, productivity widgets, theming, and developer workflow support.
Build JavaFX terminal emulators or shell-style console panes with background process I/O, ANSI handling, and safe FX-thread updates.
Build node-based JavaFX workflow editors, graph canvases, and visual programming surfaces with clean model separation.
Animate JavaFX UIs with Timeline, Transition, Canvas, and AnimationTimer-based render loops.
Manage the JavaFX Application lifecycle, primary stage setup, startup sequencing, and shutdown behavior.
| name | javafx-desktop-shell-integration |
| description | Build JavaFX desktop shells with workbenches, detachable tabs, custom stages, tray integration, and persisted layouts. |
| triggers | ["javafx docking","detachable tabs javafx","custom undecorated stage javafx","javafx tray icon"] |
| compatibility | {"java":"17+","javafx":"21+"} |
| category | platform-integration |
| tags | ["desktop","workbench","docking","tray","stage"] |
| metadata | {"scope":"repository","maturity":"starter"} |
| allowed-tools | ["view","rg","apply_patch"] |
Use this skill when the application behaves like a full desktop tool rather than a single-screen UI: tabbed workspaces, detachable tools, custom stage chrome, tray icons, or persisted shell layout.
import java.util.prefs.Preferences;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;
import javafx.scene.layout.BorderPane;
public class WorkbenchShell extends BorderPane {
private final Preferences preferences = Preferences.userNodeForPackage(WorkbenchShell.class);
public WorkbenchShell() {
var tabPane = new TabPane();
tabPane.getTabs().addAll(
new Tab("Explorer"),
new Tab("Editor"),
new Tab("Output")
);
var selectedIndex = preferences.getInt("selectedTab", 0);
tabPane.getSelectionModel().select(Math.min(selectedIndex, tabPane.getTabs().size() - 1));
tabPane.getSelectionModel().selectedIndexProperty().addListener((obs, oldValue, newValue) ->
preferences.putInt("selectedTab", newValue.intValue())
);
setCenter(tabPane);
}
}