top of page
< Back

Java Object Oriented Programming

A series of Java coursework projects focused on OOP design, data handling, and GUI-based data visualization using Swing.

As part of my university coursework, I completed a series of Java programming exercises designed to strengthen my object-oriented design, data handling, and GUI development skills. My final mark was 80% (First Class).


  • Exercise 1: Building & Skyline SimulationI created an abstract Building class and extended it into subclasses (House, Factory, Skyscraper), each overriding the getLevel() method to visually represent different building types. A Skyline class randomly generated and arranged these buildings, while a Main class displayed the final structure. This exercise deepened my understanding of inheritance, polymorphism, and abstraction.


  • Exercise 2: City DatabaseI developed a program that reads city data from a CSV file into a City class with attributes like name, country, population, and capital status. The program allowed various operations such as listing capitals, identifying the largest cities, and counting cities per country. This task improved my file handling, data parsing, and use of collections in Java.


  • Exercise 3: Temperature Heatmap VisualizerUsing Java Swing, I built a graphical application to display temperature data from a CSV file as a heatmap based on latitude, longitude, and temperature values. The program allowed users to toggle between color and grayscale views, zoom into specific regions, and interactively explore data points. This exercise enhanced my skills in GUI development, data visualization, and user interaction design.


  • Exercise 4: Temperature Line PlotterIn this exercise, I created a line plot visualization of temperature data from two locations using Java Swing. The TemperaturePlot component displayed time-series graphs, while the JulyTemperatures class handled CSV parsing and frame setup. The TemperatureReading class represented individual readings and supported calculations for minimum and maximum values. This project emphasized modular design, custom components, and data-driven UI creation.


These projects collectively strengthened my ability to apply core Java concepts to real-world scenarios, from building scalable OOP systems to crafting interactive and data-rich graphical applications.




Project Gallery

bottom of page