Purpose. A lightweight Java Swing interface that helps first-year students during the Java OOP lab: start from a UML view (Point class first), show hover tooltips over key elements, and open clickable pedagogical windows with short explanations and Java code snippets (HTML-in-Swing). It’s a teaching aid, not a replacement for the instructor. (Project context and design choices are detailed in the report.)
Core idea: visualize OOP notions (encapsulation, attributes, methods, access modifiers, constructors, getters/setters) from UML to Java code examples. :contentReference[oaicite:1]{index=1}
- UML-based entry screen (Point class to start; can be extended to Segment/Polygon). :contentReference[oaicite:2]{index=2}
- Hover tooltips explaining symbols and notions (e.g.,
+/-for public/private). :contentReference[oaicite:3]{index=3} - Clickable elements → open an information window with concise explanations and Java snippets (HTML rendered in Swing). :contentReference[oaicite:4]{index=4}
- Reusable
BaseLabelcomponent (extendsJLabel, handlesMouseListener, tooltip + info window). :contentReference[oaicite:5]{index=5}
Planned/possible extensions:
- Extend UML view beyond
Point(Segment, Polygon) with inheritance/aggregation/composition. - Simple geometric visualization (e.g., plotting a Point and calling
distance(Point)interactively). :contentReference[oaicite:6]{index=6}
- Java, Swing (+ AWT for fonts/graphics), HTML in Swing for rich text in info windows. :contentReference[oaicite:7]{index=7}
If the repo already contains a Gradle/Maven build, use that. Otherwise, here is a plain-JDK path.
# 1) Clone
git clone https://github.com/AidenPQ/InterfaceJO.git
cd InterfaceJO
# 2) Compile (assuming sources live under ./src and use default package or your own)
mkdir -p out
javac -encoding UTF-8 -d out $(find src -name "*.java")
# 3) Run (replace Main class name if different)
java -cp out MainIf your sources are packaged (e.g., fr.ecm.interfacejo), adapt the Main class name accordingly:
java -cp out fr.ecm.interfacejo.Main