During the beta test, we tested a
Saitek Cyborg X. It had 6 axis and 13 buttons. The last button did not work. It's limited by the communication protocol between the driver station and the robot controller (ie you have the same limitation in C++ and Java).
Our joystick did come with software that allowed to you remap the axis and buttons, so that you can choose which buttons and axis to use.