B4J Library [ABMaterial] Framework for WebApps

TIP: For absolute beginners with ABM, Get started with the Mini Template
TIP: Get started with 'ABMaterial For Dummies' by Harris here! (lessons)
My mini course on Youtube by MichalK73

ABMaterial is a framework combining a tuned Materialize CSS with the free programming tool B4J. It allows creating WebApps that not only look great thanks to Googles Material Design, but can be programmed with the powerful free tool from Anywhere Software without any knowledge of HTML, CSS or Javascript.


ABMaterial has over 45 themeable controls and some useful helpers.


  • ABMActionButton
  • ABMAudioPlayer (1.08)
  • ABMBadge
  • ABMButton
  • ABMCanvas
  • ABMCalendar
  • ABMCard
  • ABMChart (Plugin support 2.00)
  • ABMChat (2.50)
  • ABMCheckbox
  • ABMChronologyList (2.00)
  • ABMCombo
  • ABMCustomControl (1.05)
  • ABMChip
  • ABMCodeLabel
  • ABMDivider
  • ABMDateTimeScroller (1.06)
  • ABMDateTimePicker (1.06)
  • ABMEditor (1.07)
  • ABMFileInput (1.20+)
  • ABMGoogleMap
  • ABMLabel
  • ABMList
  • ABMImage
  • ABMImageSlider
  • ABMInputField
  • ABMRadioGroup
  • ABMPagination (1.04)
  • ABMPatternLock (1.20+)
  • ABMPDFViewer (1.08)
  • ABMPercentSlider (2.50)
  • ABMPlanner (2.50)
  • ABMPivotTable (1.08)
  • ABMRange (1.05)
  • ABMSignaturePad
  • ABMTimeLine (1.10, depreciated in 4.00)
  • ABMSlider (1.05)
  • ABMSmartWizard (3.00)
  • ABMSocialShare (1.07)
  • ABMSocialOAuth
  • ABMSVGSurface (1.20+)
  • ABMSwitch
  • ABMTabs
  • ABMTreeTable (1.04)
  • ABMUpload
  • ABMVideo

  • ABMContainer
  • ABMFlexWall (1.10)
  • ABMGenerator (1.07)
  • ABMModalSheet
  • ABMNavigationBar
  • ABMPage
  • ABMParallax
  • ABMSideBar (2.00)
  • ABMTable
  • ABMTableMutable (1.20+)
  • Firebase Auth (1.20+)
  • Firebase Storage (1.20+)
  • Configurable App and Content folders (2.00)
  • Lorem Ipsum Generator (2.00)
  • Grid Builder (2.00+)
The Grid Builder:
With the Grid Builder you can build the responsive framework very easy. This has been the most difficult part for beginners to understand. But now with the builder, you have no reason to not use ABMaterial :)


There is an online demo at http://abmaterial.com
Alternative url: http://prd.one-two.com:51042/demo/

NEW: You can now support BANano and ABMaterial here too: https://www.patreon.com/alwaysbusy

This means it is free to use, but consider this: it took me already thousands of hours to program ABMaterial, all done in my free time early in the morning and deep into the night. Not only will a donation push me to continue developing ABMaterial , remember, you'll get a warm and fuzzy feeling doing it!

Download version 5.00 - for jServer 4.00 (open source, library only):
ABMaterial 5.00 is now available on github and is open sourced :cool: (AS IS)! This version has been in heavy use (development and production) within our company for over a year now without major alterations, so I consider it very stable and ready to be open sourced.

I trust no one here will publish a clone or take credit for my work and I would consider it common courtesy if you find a bug/fix/new feature, you report back to me so I can make the same changes in the official library and everyone can benefit from it.

Note: next to downloading the library, you need also to download the accompanying www zip files from the same github (releases) containing the latest javascript/css/font files.

The procedure from Github for 5.00:

1. Download https://github.com/RealAlwaysbusy/A...eleases/download/v5.00/ABMaterial5.00-bin.zip
2. Download https://github.com/RealAlwaysbusy/A...r4.00/releases/download/v5.00-www/www5.00.zip
3. Unzip ABMaterial5.00-bin.zip and copy all .xml and .jar files to you B4J Libraries folder
4. Unzip www5.00.zip
5. In the projects you are working on (e.g. a for Dummies project) delete the following folders in \www
  • css
  • font
  • js
6. Copy from the unzipped www5.00.zip the 3 folder (css/font/js) to the \www folder where you just deleted these 3 folders.

Additional Resources:

Demo source code (for v4.51, not yet updated for 5.00, but still usefull to learn ABM): http://gorgeousapps.com/ABMExtras4.51.zip

I hope you enjoy it as much as I did creating it and I look forward to see the killer apps you will make with ABMaterial!

Also consider BANano if you are planning to write Websites/Apps in B4J!

Alain Bailleul
Alwaysbusy's Corner
Last edited:


Well-Known Member
Licensed User
Longtime User
Amazing work Alain .
You did a great job.

You cannot upload it to a normal webserver. Press run in b4a (you're starting the server). Then open your browser and go to http://localhost:51042/demo. Remember, b4j does not create websites. It creates webapps.

Why can't we upload to normal server ?


Licensed User
Longtime User
I have one question and one wish!
Q: is it possible to add a "normal" control to a cell?
W: a login control... I plan to use your framework as interface to my server and I will need user access control...


Active Member
Licensed User
Longtime User
Hi AlwaysBusy,
very nice app!!
please attention to the function
in Linux it not works if you don't change the backslash like under....

public Sub AddPage(Page As ABMPage)
    Page.Title = Title
    Page.Description = Description
    PageNeedsUpload.Add(ABM.WritePageToDisk(Page, File.DirApp  & "/www/" & AppName & "/" & Page.Name & "/", "index.html"))
End Sub

regards Paolo


Active Member
Licensed User
Longtime User
hi the AddPage function in linux don't works if you have the slash like \ in the line

File.DirApp & "\www\" & AppName & "\" & Page.Name & "\"

the app
don't start with an error in path not found


Licensed User
Longtime User
I thinks that, if the server has Java capabilities, you can...
The thing is, it cannot be triggered just by accessing www.mysite.com, the index.html page will have to redirect to the webbap entry point.
This has yet not been tested.


Licensed User
Longtime User
I thinks that, if the server has Java capabilities, you can...
The thing is, it cannot be triggered just by accessing www.mysite.com, the index.html page will have to redirect to the webbap entry point.
This has yet not been tested.

I can now confirm that it works... I just uploaded the folder "www" to my hosted webspace, and entered in the address tab "www.tugadroid.net/www/demo" and it started the webapp!!!

for now I just see the ABMaterial in the title tab, and the circular waiting thingy... I have a very slow connection!! So can anyone try to access it from my page above?
Last edited:


Licensed User
Longtime User
Your jar file is not running on your webspace I think (Chrome F12 key, log). It is not enough to upload the files to your webspace, your webspace must be capable to run the .jar file (javac.exe -jar ...)

WebSocket connection to 'ws://www.tugadroid.net/ws/demo' failed: Error during WebSocket handshake: Unexpected response code: 404


Licensed User
Longtime User
then why do I get the circling waiting ring? isn't he also a part of ABM's?

Ok, so I've been searching my CP and found nothing about java or .jar, I guess I just can't run from my webspace... still, mu raspi based webserver is slowly coming to life!!!
Last edited: