I cannot make a detailed comparison between Java, C++ and Python, but what is true is that Java ME natively supports only a limited set of (high-level) UI components. When you need to use some component that is not available, you have various possible choices:
* look at http://wiki.forum.nokia.com/index.ph..._UI_Frameworks: they usually implement a large set of customizable UI components (together with other various useful features). They're usually a good solution to build a Java ME app, but you should always care about their licensing options (and prices).
* implement your own UI components, using low-level graphic primitives (if you want to build a Canvas-based application) or simply using the CustomItem object (if you want to build high-level, Form-based applications)
To answer you first question. You can use choice group component inw MIDP 2.0 with the type as POPUP for dropdown list eg:
new ChoiceGroup("Pop-Up", ChoiceGroup.POPUP, stringArray, imageArray)
for date control you can use Date field control in MIDP2.0
eg: new DateField("Date", DateField.DATE));
new DateField("Time", DateField.TIME));
new DateField("Date & Time", DateField.DATE_TIME));
For displaying in table you have to go for custom item. With Sun Java Wireless tool kit you will get a sample application for this.