Firstly; are you making a 3D or 2D game? Don't use Minecraft as a reference if you are making a 2D game, as the rendering process will be much different.
If you are making 3D cubes and want them to be very smoothly shadowed, you need to use per-fragment lighting (i.e. shader-based).
The LibGDX 3D API includes lighting, or you can do it yourself with shaders like this:http://www.arcsynthesis.org/gltut/Illumination/Tut10%20Fragment%20Lighting.html
If you are making a 2D game, then the above is irrelevant. Instead, you should be doing research on 2D dynamic shadows:http://www.java-gaming.org/topics/2d-dynamic-lighting/27012/view.html
One common solution is to use blend functions. This involves rendering your scene once, and then rendering your lights on top:https://gist.github.com/mattdesl/5957929
Another solution involving FBOs and shaders might look like this:https://gist.github.com/mattdesl/6241893
Read up on these subjects here:https://github.com/mattdesl/lwjgl-basics/wiki
If you are using LibGDX it would be better to use something like Box2DLights. It already includes a lot of optimizations
(for example, using disc meshes to reduce fill-rate on mobile) and is easy to set up. It implements all the OpenGL/shaders for you.