neuLayout-Swing

neuLayout is a Java Swing-based framework for 2D projects which need to represent an area equal to or larger than the window.

View project on GitHub

Welcome to neuLayout for Java Swing!

If you would like to read the javadoc for this project: click here

neuLayout uses Java Swing, and does not use any third party libraries. This application is essentially a 2-dimensional "universe" containing members, all of which extend from the Actor class.
The point of this application was to create something where you could visually represent something, anything, in a space larger than your screen or window,
and scroll/move around in all four directions to explore the contents of the "universe" outside of what your window currently displays.
There is a HUD Map which represents the entirety of the universe, and displays it on a much smaller scale,
and it also shows your view with respect to the rest of the universe.

Possible Uses:
  • Simple 2d game engine.
  • Summarizing events within a sports game based on the location they occurred within the field or court (i.e. Basketball game shot summary, Football game tackle/injury summary, etc.)
  • Mapping out an area such as a home, building, or even community or city on a basic level.
Hopes for the future:
  • Implement a Connection object which extends Actor and is visually represented as a line between the two actors.
  • Support for polygons
  • Persistent Storage of ContainerUniverse and SettingsSingleton
  • Implementing basic physics (friction, rotation, gravity etc.)
  • Have ContainerUniverse extend Actor
  • Allowing for storing data within Actor class
  • Providing user with ability to add actors on runtime through a menu triggered by a double click (also registering double clicks)
  • Doors- optional addons to an actor that act as a portal from the current universe container to a new one that is within that specific actor. Doors are two-sided, so whenever you enter into an actor
  • To provide network capabilities.
  • To port this to Android.
  • To port this to Python for web and for local (Tk for graphics on local version)