Java Swing based component suite for creating iOS like UI. Smooth animations, list views, switches, animated scroll controls, etc.

  • implemented in pure Java, however it requires Oracle (Sun) JRE
  • looks similar on Windows, OSX and Linux

It is an almost complete component suite to let developers to create iOS like applications for desktop systems. Applications developed with this UI will behave similar to applications on iOS platform, with one difference: the mouse could be used instead of your finger.

The source source can be downloaded from

IOSUI would not exist without the libraries below:


Read more: Introduction


In order to display an IOSUI application, first of all you need to create an IOSUIApplication instance. This will be the main window of the application.

All you need is to provide the content and header of the application. In the most cases the content would be an IOSUIView. IOSUIView is similar to JPanel, but it based on JGoodies Form Layout. When you create an IOSUIView component you can specify the column and row of the layout, then use one of the many .addXY???() method to add components to the view.

You can read more on Form Layout on JGoodies site.

Read more: Application

Message Boxes

To display messages you can use IOSUIMessageBox, which has the following methods:

- displayMessage(),displayError(),displayWarning() - they have no result and contains only an OK button.

- showMessageDialog() - you can specify which buttons to display and the result will be that button. The button can be specified using IOSUIMessageButton enum.

Read more: Message Boxes

Popup Windows

To display a popup window you can use IOSUIPopupWindow. The difference between poup window and message box is that you must provide the content of the popup window. Also you can specify the "owner" of the popup window. In this case the popup will point to the owner.

Read more: Popup Windows


IOSUI scrolling is differ from Swing JScrollPane several ways:

- animated scrolling: the scroll is animated when drag, swipe or wheel rotate the content.

- paged content: you can specify bot direction vertical and horizontal, the page size of the scrolling. If this is set then a scroll position will be always adjusting to the nearest page. So when the user start to drag left to right and release the mouse, the scroll position will be adjusted to the nearest page.

Read more: Scrolling

List View

IOSUIListView supports displaying rows as a simple list, as groupped and seaprated by group. List view rows can be specified by DefaultListViewModel or implementing IOSUIListViewModel.

DefaultListView model is for displaying predefined style of rows, while implementing IOSUIListViewModel gives full control over row content.

Read more: List View

Page Control

IOSUIPageControl used to display horizontally animated pages. The control keeps track of displayed pages and provide "back" functionality. To see IOSUIPageControl in action check the video below.

Read more: Page Control

Gallery Control

IOSUIGallery is used to display items in GRID or GALLERY mode.

In GRID mode the items is displayed in columns/rows. The cell size is determined by the item's minimum width. The control creates as much column as possible in the available space and the remaining space distributed between columns equally.

In GALLERY mode the items placed horizontally, displaying one item at a time.

Read more: Gallery Control