本文へ移動
cccskills
無料GitHub で公開日本語紹介

jewel-swing-interop

IntelliJ PlatformのSwing画面にJewel Compose UIを組み込み、ツールウィンドウやSwingコンポーネントとの橋渡しを適切に設定します。

原文原文の説明を見る

Embed Jewel Compose UI in Swing.

JetBrains/intellij-communityスター 20,664(GitHub 20,664 + cccskills 0)

実行スコア 未検証

インストール方法を見る

こんなときに便利

  • ツールウィンドウにCompose UIを追加
  • SwingパネルにJewel UIを埋め込む
  • ComposeからSwingのダイアログを使う
  • SwingのテーマをComposeに反映

日本語での紹介

できること

Jewel Composeで作ったUIをSwingに組み込む方法を案内します。IntelliJ Platformのツールウィンドウには addComposeTab(...)、一般的なSwingホストには JewelComposePanel など、用途に合う入口を選びます。プラグイン画面では SwingBridgeTheme を使い、Swingの色や文字設定をComposeに反映します。必要に応じて合成機能を有効にし、Compose側からホストのSwingコンポーネントを取得したり、ファイル選択やダイアログをSwingに委ねたりする方法も扱います。

こんなときに便利

IntelliJプラグインの画面をComposeで作りつつ既存のSwing UIに載せたい場合や、独自のSwingパネルにJewel UIを表示したい場合に向いています。テーマ連携、重なり順やリサイズ、Swing側のダイアログ呼び出しなど、両者の境界で必要な設定を整理できます。

使い方の例

  • 「このツールウィンドウにComposeのタブを追加してください」
  • 「既存のSwingパネルにJewelのコンポーザブルを表示してください」
  • 「ComposeのボタンからSwingのファイル選択画面を開く方法を示してください」

注意点

対象となるIntelliJ Platformの基準バージョンとJewel APIのバージョンを確認します。合成機能の手動有効化とテーマなしの入口は実験的な経路として扱い、無限反復アニメーションでは性能に影響する場合があります。

この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。

含まれるファイル(2)

  • SKILL.md4.1 KB
  • skill-source.json1021 B

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

<!-- Generated by community/.ai/render-guides.mjs; edit community/.agents/skills/jewel-swing-interop/SKILL.md -->

Jewel Swing Interop

Embed Compose/Jewel into Swing with bridge primitives from ide-laf-bridge and foundation.

Quick Snippets

Tool window tab:

toolWindow.addComposeTab(tabDisplayName = "My Tab") {
    SwingBridgeTheme {
        MyToolWindowContent()
    }
}

Generic Swing host:

val panel = JewelComposePanel {
    MyPluginComposable()
}

Manual compositing enablement (non-toolwindow entrypoint):

enableNewSwingCompositing()
val panel = JewelComposePanel { MyPluginComposable() }

Use The Highest-Level API First

Pick the simplest valid entrypoint:

  1. Tool window tab: ToolWindow.addComposeTab(...).
  2. Generic Swing host: compose(...) / JewelComposePanel(...).
  3. Custom theming flow: composeWithoutTheme(...) / JewelComposeNoThemePanel(...).

Default to themed entrypoints; use no-theme variants only when theme wrapping is intentionally external.

Enable New Swing Compositing Early

Call enableNewSwingCompositing() before attaching Compose content when needed.

Notes:

  1. ToolWindow.addComposeTab(...) already does this internally.
  2. The function is idempotent and safe at multiple entry points.
  3. This improves z-order/resizing behavior but can affect performance with infinitely repeating animations.
  4. Treat enableNewSwingCompositing() and no-theme entrypoints as advanced/experimental paths.

Apply Bridge Theme In Plugin Context

Use SwingBridgeTheme for IntelliJ plugin UI:

  1. Pulls Swing LaF colors/metrics/typography into Compose.
  2. It provides bridge composition locals for icon and new-UI behavior, clipboard access, density scaling, shortcuts, and URI handling.

Do not use standalone IntUiTheme for plugin-hosted Swing integration.

Bridge Compose To Swing/AWT Safely

For bidirectional operations:

  1. Use LocalComponent to get the host Swing component when APIs require Component.
  2. Use bridge utilities for color conversion and LaF key lookup when styling custom interop elements.
  3. Delegate file chooser and dialog operations to Swing (JFileChooser, etc.) from Compose callbacks.

Version Discipline

Treat this skill as Jewel-version scoped.

  1. Ask for target IntelliJ Platform baseline and Jewel API version.
  2. Validate behavior against Jewel release notes when APIs differ by platform generation.
  3. Prefer high-level bridge entrypoints that are stable in target versions.
  4. For shipped skill updates, refresh reference links to the corresponding release tag.

Interop Checklist

Before finishing:

  1. Confirm compositing flag is set at proper entrypoints.
  2. Confirm theme wrapper is SwingBridgeTheme (unless deliberately no-theme).
  3. Confirm host component access uses LocalComponent.
  4. Confirm toolwindow integrations use addComposeTab when applicable.
  5. Confirm interop code avoids creating extra unmanaged ComposePanel wrappers.

References

Read these source files when implementing:

  1. ToolWindowExtensions.kt
  2. JewelComposePanelWrapper.kt
  3. SwingBridgeTheme.kt
  4. Compatibility.kt (enableNewSwingCompositing)
  5. README Swing interoperability section

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

actions

無料概要あり

IntelliJプラグインのAnActionと登録設定を実装・変更し、表示文言やアイコンの定義、非同期処理の起動方法を整えます。

  • IDEに新しいアクションを追加したいとき
  • アクションの登録やアイコンを変更したいとき
  • 表示名と説明文の定義を整理したいとき
JetBrains/intellij-community2.1万2026年10月26日 更新

bazel-test-migration

無料概要あり

IntelliJのJPSテストモジュールをBazelへ移行し、Bazelだけで起きる失敗を依存関係や実行環境から切り分ける手順を案内します。

  • JPSテストをBazelへ移行したいとき
  • Bazelだけで起きるテスト失敗を調べたいとき
  • テストの依存関係やデータ設定を確認したいとき
JetBrains/intellij-community2.1万2026年10月26日 更新

code-style

無料概要あり

IntelliJのKotlin・Javaコードを新規作成やレビューする際に、言語の選び方、書式、型の扱い、例外処理などのプロジェクト規約に沿って整えるスキルです。

  • IntelliJ規約に沿ってKotlinを書きたいとき
  • Javaコードをレビューしたいとき
  • 例外処理やsealed型の分岐を確認したいとき
JetBrains/intellij-community2.1万2026年10月26日 更新

commits

無料概要あり

IntelliJ向けの変更を適切な単位に分け、チケットの有無に応じた形式で、理由や判断も伝わるコミットメッセージを作成・修正するスキルです。

  • チケット付き変更のメッセージを作りたいとき
  • テストやドキュメントのコミットを整理したいとき
  • 既存のコミットメッセージを修正したいとき
JetBrains/intellij-community2.1万2026年10月26日 更新

compare-python-typecheckers

無料概要あり

Pythonコードの型推論や型エラーを複数の型チェッカーで比較し、各ツールの判定と診断内容をまとめたレポートを作成します。

  • 型推論の違いを比較したいとき
  • 型エラーになるか確かめたいとき
  • 複数チェッカーの診断を見比べたいとき
JetBrains/intellij-community2.1万2026年10月26日 更新

compose-ui-architecture

無料概要あり

Compose Desktopの画面で状態や副作用をどこに持たせるか整理し、表示と判断の境界、再利用部品やリストの設計を整えます。

  • 画面とプレゼンターの責務を分けたいとき
  • UI状態の置き場所を整理したいとき
  • Effectやコルーチンの使い方を見直したいとき
JetBrains/intellij-community2.1万2026年10月26日 更新

JetBrains のスキルをすべて見る

このスキルの問題を報告する