I'll try to explain...
Basically, what you want to do is to render the whole game relative to the screen's coordinates, and those coordinates never change. The upper left corner is always [0, 0]. That means that if you want to render something from the camera's perspective, you will have to recalculate the position from its world coordinates to the screen's coordinate system.
cameraX = (int) (Player.getX() - (Frame.CANVAS_WIDTH / 2));
doesn't move any coordinates. All it does is to calculate an integer, which tells you where the camera is located in the world. Lets say it's calculated to be "100". Since you want this to be the upper left corner on screen, everything has to be moved relative to the camera.
For example, if your player is located at "250", it should be rendered at screen coordinate "150".
Another way to think about it is, what if the player is standing still (for example, at world coordinates [500, 500]), and instead of moving the player you are moving the camera? How would you render the tiles and the player?
Hope this helps.