Skip to content

Java Swing GUI to support first-year Java OOP lab: interactive UML (Point class as entry), hover tooltips + clickable elements opening pedagogical windows (HTML content), built around a reusable BaseLabel component. Not meant to replace the teacher—it's a learning aid.

Notifications You must be signed in to change notification settings

AidenPQ/InterfaceJO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

InterfaceJO — Java Swing GUI for Intro OOP Lab

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}


✨ Features

  • 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 BaseLabel component (extends JLabel, handles MouseListener, 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}

🧩 Tech stack

  • Java, Swing (+ AWT for fonts/graphics), HTML in Swing for rich text in info windows. :contentReference[oaicite:7]{index=7}

🚀 Run locally

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 Main

If your sources are packaged (e.g., fr.ecm.interfacejo), adapt the Main class name accordingly:

java -cp out fr.ecm.interfacejo.Main

About

Java Swing GUI to support first-year Java OOP lab: interactive UML (Point class as entry), hover tooltips + clickable elements opening pedagogical windows (HTML content), built around a reusable BaseLabel component. Not meant to replace the teacher—it's a learning aid.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages