{"id":18412168,"url":"https://github.com/milchreis/uibooster","last_synced_at":"2025-04-05T11:08:10.784Z","repository":{"id":39002906,"uuid":"203447822","full_name":"Milchreis/UiBooster","owner":"Milchreis","description":"🚀 Creates fast and easy dialogs for utility tools","archived":false,"fork":false,"pushed_at":"2025-03-20T20:31:01.000Z","size":1387,"stargazers_count":119,"open_issues_count":8,"forks_count":12,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-29T10:05:50.456Z","etag":null,"topics":["cli","confirmation-dialog","dark-theme","dialog","easy-dialogs","fast","form","gui","java","login","login-dialog","progress-dialog","selection-dialog","swing","table","table-dialog","ui","utility"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Milchreis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"milchreis","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2019-08-20T20:15:02.000Z","updated_at":"2025-03-20T20:31:05.000Z","dependencies_parsed_at":"2023-02-09T16:46:28.561Z","dependency_job_id":"24631ac9-b515-4e7b-90f6-39ed0869dc44","html_url":"https://github.com/Milchreis/UiBooster","commit_stats":null,"previous_names":[],"tags_count":42,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Milchreis%2FUiBooster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Milchreis%2FUiBooster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Milchreis%2FUiBooster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Milchreis%2FUiBooster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Milchreis","download_url":"https://codeload.github.com/Milchreis/UiBooster/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247325693,"owners_count":20920714,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cli","confirmation-dialog","dark-theme","dialog","easy-dialogs","fast","form","gui","java","login","login-dialog","progress-dialog","selection-dialog","swing","table","table-dialog","ui","utility"],"created_at":"2024-11-06T03:40:05.241Z","updated_at":"2025-04-05T11:08:10.768Z","avatar_url":"https://github.com/Milchreis.png","language":"Java","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/Milchreis/UiBooster/blob/master/screenshots/logo.png?raw=true\" /\u003e\n\u003c/p\u003e\n\n[![Release](https://jitpack.io/v/Milchreis/UiBooster.svg)](https://jitpack.io/#Milchreis/UiBooster)\n[![GitHub](https://img.shields.io/github/license/Milchreis/UiBooster)](https://github.com/Milchreis/UiBooster/blob/master/LICENSE)\n[![Snyk Known Vulnerabilities](https://snyk.io/test/github/milchreis/uibooster/badge.svg)](https://snyk.io/test/github/Milchreis/UiBooster)\n[![Ko-Fi](https://img.shields.io/badge/Ko--fi-F16061?logo=ko-fi\u0026logoColor=white)](https://ko-fi.com/milchreis)\n\nUiBooster is a lean library to create fast and easy dialogs for utility tools. It equips your applications blazing\nfast with GUI components to increase the comfort for your users.\n\nIt's based on Java swing components to run on current JREs without any struggle. This library encapsulates the long and \nsometimes complicated GUI code and leaves more clarity in your project.\n \nI decided to create this project, because I missed something like [zenity](https://de.wikipedia.org/wiki/Zenity) \nfor my Java applications.\n\nIf you like this project, and you want to keep me awake 🤪, please:\n\n\u003ca href='https://ko-fi.com/L4L21072C' target='_blank'\u003e\u003cimg height='36' style='border:0px;height:36px;' src='https://az743702.vo.msecnd.net/cdn/kofi1.png?v=2' border='0' alt='Buy Me a Coffee at ko-fi.com' /\u003e\u003c/a\u003e\n\n## Components\n\n - [Information dialogs](#information-dialogs)\n - [Text input dialog](#text-input-dialog)\n - [Confirmation dialog](#confirmation-dialog)\n - [Password input dialog](#password-input-dialog)\n - [Selection dialog](#selection-dialog)\n - [Multiple selection dialog](#multiple-selection-dialog)\n - [Slider dialog](#slider-dialog)\n - [Colorpicker](#colorpicker)\n - [FontChooser](#font-chooser)\n - [Datepicker](#datepicker)\n - [File and directory selection dialogs](#file-and-directory-selection-dialogs)\n - [Text area dialog](#text-area-dialog)\n - [HTML text dialog](#html-text-dialog)\n - [Exception dialog](#exception-dialog)\n - [List dialog](#list-dialog)\n - [Login dialog](#login-dialog)\n - [Waiting dialog](#waiting-dialog)\n - [Progress dialog](#progress-dialog)\n - [Table dialog](#table-dialog)\n - [Gallery dialog](#gallery-dialog)\n - [Form dialog](#form-dialog)\n - [Splash screen](#splash-screen)\n - [System tray menu](#system-tray)\n - [Notification](#notification)\n\n### Information dialogs\n![screenshot info dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/info.jpg?raw=true)\n![screenshot warn dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/warn.jpg?raw=true)\n![screenshot error dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/error.jpg?raw=true)\n```java\nnew UiBooster().showInfoDialog(\"UiBooster is a lean library to ....\");\n```\n```java\nnew UiBooster().showWarningDialog(\"Your computer has a low battery ....\", \"WARN\");\n```\n```java\nnew UiBooster().showErrorDialog(\"The connection to SQL database is failed.\", \"ERROR\");\n```\n\n### Text input dialog\n![screenshot input dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/input.jpg?raw=true)\n```java\nString opinion = new UiBooster().showTextInputDialog(\"What do you think?\");\n```\n\n### Confirmation dialog\n![screenshot confirm dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/confirm.jpg?raw=true)\n```java\nnew UiBooster().showConfirmDialog(\n                \"Do you really want this action?\",\n                \"Are you sure?\",\n                () -\u003e System.out.println(\"Action accepted\"),\n                () -\u003e System.out.println(\"Action declined\"));\n```\n\n### Password input dialog\n![screenshot password dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/password.jpg?raw=true)\n```java\nString password = booster.showPasswordDialog(\"Whats your password?\", \"Password\");\n```\n\n### Selection dialog\n![screenshot selection dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/selection.jpg?raw=true)\n```java\nString selection = new UiBooster().showSelectionDialog(\n        \"What's your favorite movie?\",\n        \"Favorite Movie?\",\n        Arrays.asList(\"Pulp Fiction\", \"Bambi\", \"The Godfather\", \"Hangover\"));\n```\n\n### Multiple selection dialog\n![screenshot multiple selection dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/multiselection.jpg?raw=true)\n```java\n List\u003cString\u003e selectedElement = new UiBooster().showMultipleSelection(\n            \"What are your favorite hobbies?\",\n            \"Your hobbies\",\n            \"Reading\", \"Traveling\", \"Fishing\", \"Music\", \"Gardening\", \"Sport\", \"Television\",\n            \"Video Games\", \"Crafting\", \"Bird Watching\", \"Collecting\");\n```\n\n### Slider dialog\n![screenshot slider dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/slider.jpg?raw=true)\n```java\nInteger numberOfHotDogs = new UiBooster().showSlider(\"How many HotDogs do you want?\", \"Your order\", \n                0, 10, 2, 5, 1);\n```\n\n### Colorpicker\n![screenshot color dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/color.jpg?raw=true)\n```java\nColor selectedColor = new UiBooster().showColorPicker(\"Choose your favorite color\", \"Color picking\");\n```    \n_library by @dheid: [colorpicker](https://github.com/dheid/colorpicker)_\n\n### Font Chooser\n![screenshot font dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/font.png?raw=true)\n```java\nFont selectedFont = new UiBooster().showFontChooser(\"Choose your favorite font\", \"Font choosing\");\n```    \n_library by @dheid: [fontchooser](https://github.com/dheid/fontchooser)_\n\n### Datepicker\n![screenshot datepicker](https://github.com/Milchreis/UiBooster/blob/master/screenshots/dateselection.jpg?raw=true)\n```java\nDate birthday = new UiBooster().showDatePicker(\"What's your birthday?\", \"Birthday\");\n```\n\n### File and directory selection dialogs\n![screenshot file dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/fileselection.jpg?raw=true)\n```java\nUiBooster booster = new UiBooster();\nFile file = booster.showFileSelection();\nFile directory = booster.showDirectorySelection();\nFile fileOrDirectory = booster.showFileOrDirectorySelection();\n```\n\n### Text area dialog\n![screenshot text area dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/textarea.jpg?raw=true)\n```java\nnew UiBooster().showTextArea(\"Want to read some lorem ipsum?\", \"Message for you\",\n    \"Lorem ipsum dolor sit amet ...\",\n    10, 40, false);\n);\n```\n\n### HTML text dialog\n![screenshot html text dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/htmltext.jpg?raw=true)\n```java\nnew UiBooster().showHtmlText(\"My menu\", \"Menu overview\",\n    \"\u003ch1\u003e📜 Menu\u003c/h1\u003e\" +\n    \"\u003cul\u003e\" +\n    \"\u003cli\u003e🍕 Pizza \u003c/li\u003e\" +\n    \"\u003cli\u003e🍔 Cheeseburger\u003c/li\u003e\" +\n    \"\u003cli\u003e🥗 Caesar-Salat\u003c/li\u003e\" +\n    \"\u003c/ul\u003e\");\n```\n\n### Exception dialog\n![screenshot exception dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/exception.jpg?raw=true)\n```java\nnew UiBooster().showException(\n    \"An error occurred\", \n    \"Exception message\",\n    new Exception(\"Something went wrong ...\")\n);\n```\n\n### List dialog\n![screenshot list dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/list.jpg?raw=true)\n```java\nListElement selectedElement = new UiBooster().showList(\n    \"Select a robot\", \n    \"Avatars from RoboHash.org\",\n    element -\u003e System.out.println(\"Selected: \" + element.toString()),\n    new ListElement(\"Robo 1\", \"Green and strong\",         \"src/test/resources/avatar1.png\"),\n    new ListElement(\"Robo 2\", \"Shy without an avatar!\"),\n    new ListElement(\"Robo 3\", \"- Crazy\\n- Fast\\n- Funny\", \"src/test/resources/avatar2.png\"),\n    new ListElement(\"Robo 4\", null,                       \"src/test/resources/avatar3.png\")\n);\n```\n\n### Login dialog\n![screenshot login dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/login.jpg?raw=true)\n```java\nLoginCredentials credentials = new UiBooster().showLogin(\n        \"Login\",\n        \"Internal area\",\n        \"Username\",\n        \"Password\",\n        \"Go\",\n        \"Cancel\");\n```\n\n### Waiting dialog\n![screenshot waiting dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/waiting.jpg?raw=true)\n```java\nWaitingDialog dialog = new UiBooster().showWaitingDialog(\"Starting\", \"Please wait\");\ndialog.setMessage(\"Ready\");\ndialog.close();\n```\n![screenshot waiting with message dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/waiting_with_message.jpg?raw=true)\n```java\nWaitingDialog dialog = new UiBooster().showWaitingDialog(\"Starting\", \"Please wait\");\ndialog.setMessage(\"Initializing\");\ndialog.setLargeMessage(\"Some more information...\\nMaybe from log files or other resources. \\nBe transparent to the user to understand long processes...\");\ndialog.close();\n```\n\n### Progress dialog\n![screenshot progress dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/progress.jpg?raw=true)\n```java\nProgressDialog dialog = new UiBooster().showProgressDialog(\"Please wait\", \"Waiting\", 0, 120);\ndialog.setProgress(10);\n// ...\ndialog.setProgress(120);\ndialog.setMessage(\"Ready\");\ndialog.close();\n```\n\n### Table dialog\n![screenshot table dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/table.jpg?raw=true)\n```java\nString[][] modifiedData = new UiBooster().showTable(    // showTableImmutable for immutable tables\n        new String[][]{\n                {\"Jimmy Johnson\", \"35\", \"Zombieland\"},\n                {\"Danny Durango\", \"23\", \"Hangover\"},\n                {\"Larry Berry\", \"54\", \"\"}\n        },\n        Arrays.asList(\"Name\", \"Age\", \"Favorite movie\"),\n        \"Favorite movies\");\n```\n\n### Gallery dialog\n![screenshot gallery dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/gallery.jpg?raw=true)\n```java\nnew UiBooster().showPictures(\n        \"My picture\",\n        Arrays.asList(\n            new File(\"/home/nick/pictures/img-01.jpg\"),\n            new File(\"/home/nick/pictures/img-02.jpg\")\n        )\n);\n```\n\n### Form dialog\n![screenshot gallery dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/form.jpg?raw=true)\n```java\nUiBooster booster = new UiBooster();\nForm form = booster.createForm(\"Personal information\")\n            .addText(\"Whats your first name?\")\n            .addTextArea(\"Tell me something about you\")\n            .addSelection(\n                    \"Whats your favorite movie?\",\n                    Arrays.asList(\"Pulp Fiction\", \"Bambi\", \"The Godfather\", \"Hangover\"))\n            .addLabel(\"Choose an action\")\n            .addButton(\"half full\", () -\u003e booster.showInfoDialog(\"Optimist\"))\n            .addButton(\"half empty\", () -\u003e booster.showInfoDialog(\"Pessimist\"))\n            .addSlider(\"How many liters did you drink today?\", 0, 5, 1, 5, 1)\n            .show();\n\n// use .run() instead of show() to open the formBuilder without blocking.\n```\nThe form is very powerful and provides a lot of features:\n\n* add your own elements ([Example](https://github.com/Milchreis/UiBooster/blob/master/src/test/java/de/milchreis/uibooster/CustomFormBuilderElementTest.java))\n* put multiple elements in one row ([Example](https://github.com/Milchreis/UiBooster/blob/master/src/test/java/de/milchreis/uibooster/FormBuilderWithRowsTest.java#L41))\n* add a listener for any changes ([Example](https://github.com/Milchreis/UiBooster/blob/master/src/test/java/de/milchreis/uibooster/FormBuilderChangeListenerTest.java#L22))\n* add a listener on window close ([Example](https://github.com/Milchreis/UiBooster/blob/master/src/test/java/de/milchreis/uibooster/FormBuilderTest.java#L115))\n* set window setting, f.e. size and position ([Example](https://github.com/Milchreis/UiBooster/blob/master/src/test/java/de/milchreis/uibooster/FormBuilderTest.java#L141))\n* data-binding to manage inputs in form in dedicated variables ([Example](https://github.com/Milchreis/UiBooster/blob/master/src/test/java/de/milchreis/uibooster/DataBindingTest.java#L44))\n\n### Splash screen\n![screenshot splash screen](https://github.com/Milchreis/UiBooster/blob/master/screenshots/splash.jpg?raw=true)\n```java\nSplashscreen splash = new UiBooster().showSplashscreen(\"/path/to/your/splash.png\");\n// do your stuff\nsplash.hide();\n```\n\n### System tray\n![screenshot gallery dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/tray.jpg?raw=true)\n```java\nUiBooster booster = new UiBooster();\nbooster.createTrayMenu(\"Food\", \"screenshots/color.jpg\")\n        .withPopupMenu()\n        .addMenu(\"Hotdogs\", () -\u003e booster.showInfoDialog(\"Sausage in a roll\"))\n        .addMenu(\"Fries\", () -\u003e booster.showInfoDialog(\"Fried potatoes\"))\n        .addMenu(\"Pizza\", () -\u003e booster.showInfoDialog(\"Dough with tomato sauce\"));\n```\n\n### Notification\n![screenshot gallery dialog](https://github.com/Milchreis/UiBooster/blob/master/screenshots/notification.jpg?raw=true)\n```java\nnew UiBooster().createNotification(\"It's hot and delicious\", \"Dinner is ready\");\n```\n\n## Options\n```java\nUiBooster booster = new UiBooster(\n    UiBoosterOptions.Theme.DARK_THEME,\n    \"/path/to/your/custom-window-icon.png\"\n);\n```\nSee some examples for UiBoosterOptions [here](https://github.com/Milchreis/UiBooster/blob/master/src/test/java/de/milchreis/uibooster/UiBoosterOptionsTest.java)  \n\n### More themes powered by flatlaf\n1. Add themes as maven dependency\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.formdev\u003c/groupId\u003e\n    \u003cartifactId\u003eflatlaf-intellij-themes\u003c/artifactId\u003e\n    \u003cversion\u003e3.2.1\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n2. Create a new UiBooster with theme as UiBoosterOption\n```java\nUiBooster booster = new UiBooster(new UiBoosterOptions(new com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialOceanicIJTheme(), null, null));\nbooster.showInfoDialog(\"Info Message Empty Constructor\");\n```\n\n![screenshot custom theme](https://github.com/Milchreis/UiBooster/blob/master/screenshots/another-theme.jpg?raw=true)\n\n[List with beautiful themes](https://github.com/JFormDesigner/FlatLaf/tree/main/flatlaf-intellij-themes#themes)\n\n## Include to project\n### Maven\nIf you want to use `UiBooster` than add the following to your pom.xml.\n```xml\n\u003crepository\u003e\n    \u003cid\u003ejitpack.io\u003c/id\u003e\n    \u003curl\u003ehttps://jitpack.io\u003c/url\u003e\n\u003c/repository\u003e\n```\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.github.milchreis\u003c/groupId\u003e\n  \u003cartifactId\u003euibooster\u003c/artifactId\u003e\n  \u003cversion\u003e1.21.1\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n### Gradle\nIf you want to use `UiBooster` with gradle than add the repo, and the dependency to your root build.gradle file.\n```gradle\nallprojects {\n    repositories {\n        ...\n        maven { url 'https://jitpack.io' }\n    }\n}\n```\n```gradle\ndependencies {\n        implementation 'com.github.milchreis:uibooster:1.21.1'\n}\n```\n","funding_links":["https://ko-fi.com/milchreis","https://ko-fi.com/L4L21072C'"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmilchreis%2Fuibooster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmilchreis%2Fuibooster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmilchreis%2Fuibooster/lists"}