This repository contains a Java-based graphical application developed as part of a coursework project. The application provides an intuitive Java Swing-based GUI that integrates four key Java programming concepts:
- Strategy Pattern: Implements different behaviors for a hero character.
- Custom Annotations: Demonstrates the use of Java annotations to dynamically invoke methods.
- Translator: A text translation feature using a dictionary file or manual input.
- Stream API Exercises: A collection of tasks that utilize Java's Stream API for data manipulation.
Users can easily switch between these functionalities using the graphical interface, with all results displayed in non-editable text areas.
- Strategy Pattern: Dynamically switch between different hero movement strategies (walking, flying, etc.).
- Custom Annotations: Invoke annotated methods automatically based on defined parameters.
- Translator: Translate text based on a user-defined dictionary or manual input, with support for the longest phrase match.
- Stream API Exercises: Perform various operations using the Stream API, such as calculating averages, converting strings, and more.
To clone this repository to your local machine:
git clone https://github.com/spbstu-java/course-work-seigtm.git
Before you can run the application, make sure you have the following installed:
- Java Development Kit (JDK).
- (Optional) An Integrated Development Environment (IDE) like IntelliJ IDEA or Eclipse.
- (Optional) CMake for building the project from the command line.
-
Compile the source code using your preferred IDE or through the command line using CMake:
cmake -S . -B ./build cmake --build ./build
-
Run the application by either executing it through your IDE or via the command line:
java -jar ./build/app.jar
-
Using the graphical interface
- Select one of the four main functionalities from the menu (Strategy, Annotations, Translator, Stream).
- Input the required data as prompted by the interface.
- Results will be displayed in the non-editable text area to prevent modification.
This project is licensed under the MIT License - see the LICENSE
file for details.
This project was developed as part of a coursework to demonstrate the use of design patterns, annotations, and Stream API in Java, with a focus on implementing a practical and user-friendly graphical application.