Skip to content
Alex Gulko edited this page Jun 5, 2021 · 4 revisions

Welcome to the IonEngine wiki!

IonEngine is a powerful library that will help you create your Java Graphics applications. It consists of a range of classes that range from just shortcutting and saving your time to refining the structure of elements, simplifying the learning curve by making it more intuitive. And the best part is that nothing is written in stone. All sublibraries are flexible, super customizable, and extendable. You also do not need to rebuild the already existing projects to add Ion. This wiki will walk you through all the process of developing and debugging your IonEngine applications. Hope you enjoy it!


The structure

Every window in Ion consists of 4 nested elements:

  1. Frame
  2. Panel
  3. Container
  4. Object

Frame is the outer shell of your graphics. It extends standard Java JFrame, providing you all its qualities and methods. Besides that, it includes some useful functions like hiding a cursor, switching to the full screen, and providing a simple toolbar setup.

Panel is the second layer. It extends JPanel, providing you full access to its functions. You can add multiple panels to a single frame using standard Java functions.

Container, the third layer, are rectangle spaces that allow you to arrange objects in them. They can overlap each other, allowing you to arrange a number of them in a stack, for example for a game GUI. Containers also host Behavior Packs, which are useful for reacting to different events. Have an optional border.

Objects are the last elements in this stack. There is a variety of them built-in: rectangles, images, lines and you can easily code your own by simply extending the IonObject class. Objects allow you to easily manage what is happening on your screen and control the properties of items without resetting the whole frame. Each object has a built-in properties map, which gives you easy access to changing and reading custom properties by their key names.

Behavior Packs are classes, which receive all keyboard, mouse, and object events happening in the container. Can be easily used to react and act.

Clone this wiki locally