{"id":35408674,"url":"https://github.com/ohle/swingspector","last_synced_at":"2026-04-19T16:01:40.832Z","repository":{"id":39633337,"uuid":"436980832","full_name":"ohle/Swingspector","owner":"ohle","description":"A plugin for Intellij IDEA that helps making and debugging Swing UIs","archived":false,"fork":false,"pushed_at":"2026-04-13T08:58:08.000Z","size":30483,"stargazers_count":17,"open_issues_count":2,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-13T10:26:08.035Z","etag":null,"topics":["intellij","java","swing","swing-gui"],"latest_commit_sha":null,"homepage":"https://ohle.github.io/Swingspector/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ohle.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-12-10T13:01:30.000Z","updated_at":"2026-04-13T08:43:03.000Z","dependencies_parsed_at":"2022-09-20T06:51:37.656Z","dependency_job_id":"94786221-0797-4613-be02-6eab52d75830","html_url":"https://github.com/ohle/Swingspector","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":"JetBrains/intellij-platform-plugin-template","purl":"pkg:github/ohle/Swingspector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohle%2FSwingspector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohle%2FSwingspector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohle%2FSwingspector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohle%2FSwingspector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ohle","download_url":"https://codeload.github.com/ohle/Swingspector/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohle%2FSwingspector/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32012787,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["intellij","java","swing","swing-gui"],"created_at":"2026-01-02T13:26:17.764Z","updated_at":"2026-04-19T16:01:40.821Z","avatar_url":"https://github.com/ohle.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Swingspector](https://raw.githubusercontent.com/ohle/idea-swag/main/Logo.png)\n\n![Build](https://github.com/ohle/idea-swag/workflows/Build/badge.svg)\n[![Version](https://img.shields.io/jetbrains/plugin/v/18345.svg)](https://plugins.jetbrains.com/plugin/18345)\n[![Downloads](https://img.shields.io/jetbrains/plugin/d/18345.svg)](https://plugins.jetbrains.com/plugin/18345)\n\n## Summary\n\n\u003c!-- Plugin description --\u003e\n`Swingspector` is a plugin for Intellij IDEA that allows to analyze Java Swing components in a\nrunning\napplication.\n\nIt is heavily inspired by the\nstandalone [Swing Explorer](https://github.com/swingexplorer/swingexplorer). (Swing Explorer does\ncome with an Intellij plugin, but it does not offer many features). In fact, the name of the\n[instrumentation agent](https://github.com/ohle/swag) (SWAG, for SWing AGent), is blatantly copied\nfrom that project.\n\u003c!-- Plugin description end --\u003e\n\n## Features\n\n- Display information about swing components in a running application\n- Display component hierarchy\n- Navigate to point code where components were added\n\n## Usage\n\n![Demo](https://raw.githubusercontent.com/ohle/idea-swag/main/screenshots/Demo.gif)\n\n`Swingspector` adds a new option to run configurations. This option will\ninstrument the application for use with the plugin.\n\nSelect \"Swingspector\" from the \"Modify Options\" menu of any run configuration\nthat starts a Swing application, activate the checkbox and choose a shortcut.\nNow, when running your Swing application through this configuration, it will\nreact to the configured shortcut by opening a tool window in IDEA with\ninformation about the Swing component under the mouse cursor.\n\n### Navigation\n\nThere are two ways to open a tool window for a component:\n\n#### Using the hotkey\n\nThe run configuration setup dialog includes a keyboard shortcut (default \u003ckbd\u003e\nCtrl\u003c/kbd\u003e+\u003ckbd\u003e;\u003c/kbd\u003e).\nThis shortcut is installed in the application being run (so be sure to choose one that doesn't\nshadow an\nimportant shortcut of the application itself).\n\nPosition your mouse cursor over a component of interest and press the shortcut keys (with the\nkeyboard focus in your application) to open a window for that component.\n\n#### Using the hierarchy of the root windows\n\nThe \"Swing Roots\" toolwindow is populated when running an application with Swingspector active, and\ncontains\nthe root windows (JFrames, Dialogs, …) that the application opened. Double-clicking one of those\nwill open the Swing Hierarchy tool window, showing the tree of components within that window.\nIndividual components can be opened from there.\n\nIf the list of windows is empty, press the refresh button once the application is actually showing a\nwindow.\n\n### The component tool window\n\n![toolwindow](https://raw.githubusercontent.com/ohle/idea-swag/main/screenshots/toolwindow.png)\nThe window contains three sections:\n\n- The placement panel, with information about the way the component was added to the hierarchy,\n  including a stacktrace with clickable source links\n- The appearance panel, showing a table of sizes at the top (with a pin if a size was set\n  explicitly)\n  and an interactive view of the component\n- The properties panel, with various properties of the component grouped into thematic tabs. The\n  listeners registered on the component (in the listeners tab) can be opened by clicking on them[^1]\n\n[^1]: This currently only works for regular classes (including inner classes and anonymous classes),\nbut not method references or lambda expressions.\n\nThe toolbar has buttons to open the component in the hierarchy tree, and to open the component's\nparent.\n\nImmediate child components can be opened by double-clicking. When hovering over a child component,\nits preferred, minimum, and maximum size are plotted, and its name is displayed in the overlay.\n\n### The Swing Hierarchy tree view\n\nThe \"Swing Hierarchy\" tool window shows the component tree of a root window; it can be opened either\nfrom the roots tool window or a component tool window.\n\nEach node of the tree will display its name (if set) and Component subclass. For containers\n(i.e. non-leaf nodes), the layout class name will be shown in brackets.\n\nThe width and height toggle buttons in the toolbar will add information about the sizes:\n\n- Minimum size in blue\n- Actual size\n- Preferred size in green\n- Maximum size in red\n\nIf a size is set to a fixed value (via `set{Minimum,Maximum,Preferred}Size()`), it will be\nunderlined.\n\n## Installation\n\n- Using IDE built-in plugin system:\n\n  \u003ckbd\u003eSettings/Preferences\u003c/kbd\u003e \u003e \u003ckbd\u003ePlugins\u003c/kbd\u003e \u003e \u003ckbd\u003eMarketplace\u003c/kbd\u003e \u003e \u003ckbd\u003eSearch for \"\n  Swingspector\"\u003c/kbd\u003e \u003e\n  \u003ckbd\u003eInstall Plugin\u003c/kbd\u003e\n\n- Manually:\n\n  Download the [latest release](https://github.com/ohle/idea-swag/releases/latest) and install it\n  manually using\n  \u003ckbd\u003eSettings/Preferences\u003c/kbd\u003e \u003e \u003ckbd\u003ePlugins\u003c/kbd\u003e \u003e \u003ckbd\u003e⚙️\u003c/kbd\u003e \u003e \u003ckbd\u003eInstall plugin from\n  disk...\u003c/kbd\u003e\n\n---\nPlugin based on the [IntelliJ Platform Plugin Template][template].\n\n[template]: https://github.com/JetBrains/intellij-platform-plugin-template\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fohle%2Fswingspector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fohle%2Fswingspector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fohle%2Fswingspector/lists"}