# swingdesktop **Repository Path**: bikr/swingdesktop ## Basic Information - **Project Name**: swingdesktop - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: 1.0.0 - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-30 - **Last Updated**: 2025-11-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Swing Desktop Application This is a desktop application framework based on Java Swing, providing modern UI components and features including dark/light theme switching, a customizable menu system, and closable tabs. ## Features - **Modern UI Design**: Supports switching between dark and light modes. - **Dynamic Menu System**: Supports multi-level menu configuration with dynamically loadable menu items. - **Closable Tabs**: Supports adding, switching, and closing tabs. - **Modular Structure**: UI components are modularized for easy extension and maintenance. - **Icon Support**: Uses SVG icons for high-quality graphical display. ## Technology Stack - Java Swing - FlatLaf theme library - SVG icon support - Maven project management ## Project Structure - `src/main/java/com/hano/swing`: Core code directory - `Starter.java`: Application entry class - `MainFrame.java`: Main window layout and management - `Menu.java`: Menu component implementation - `ClosableTabbedPane.java`: Closable tabbed pane component - `LightDarkMode.java`: Theme switching functionality - `ToolBarAccentColor.java`: Toolbar accent color component - `Form*.java`: Sample form interfaces - `src/main/resources`: Resource files directory - `icon/`: Icon resources - `menu-config.json`: Menu configuration file - `application.properties`: Application configuration - `Flat*.properties`: Theme configuration files ## Installation and Execution 1. Ensure Java Development Environment (JDK 8 or higher) is installed. 2. Clone the project: ```bash git clone https://gitee.com/bikr/swingdesktop.git ``` 3. Build the project: ```bash mvn clean package ``` 4. Run the application: ```bash java -jar target/swingdesktop-*.jar ``` ## Usage Instructions - **Menu System**: The left-side menu bar supports expanding/collapsing; clicking a menu item displays corresponding content in the main interface. - **Theme Switching**: Toggle between dark and light modes using the button in the top-right corner of the interface. - **Accent Color**: Choose from different accent colors. - **Tabs**: Supports adding multiple closable tabs. ## Configuration - **Menu Configuration**: Customize menu items by editing the `src/main/resources/menu-config.json` file. - **Theme Configuration**: Adjust theme styles using property files under `src/main/java/com/hano/swing/ui/theme/`. - **Application Configuration**: Modify basic application settings in `src/main/resources/application.properties`. ## Extension Development - **Add New Forms**: Create new form classes by extending `JPanel` and implementing desired functionality. - **Menu Routing**: Register handling logic for new menu items using `MenuRouter`. - **Theme Customization**: Modify FlatLaf property files or add support for new themes. ## Dependencies - `lib/swing-toast-notifications-1.0.2.jar`: For displaying notification messages - FlatLaf theme library (managed via Maven dependencies) ## License This project is licensed under the MIT License. See the LICENSE file for details.