Gabriele has posted 2 posts at DZone. View Full User Profile

Vocabulary Learning on the NetBeans Platform

  • submit to reddit

I am a software developer, entrepreneur, and student at the Free University of Bozen. I've created an application named MemorizEasy, which is a vocabulary learning application on the NetBeans Platform.


Though I grew up in Italy, I went to the english-language Cambridge International High School. I had to learn plenty of vocabulary to get along, while flashcards and time were not enough. My "new words" notebook was growing into an alphabetically-unsorted dictionary.

Then I started sticking the new words on my wall, so that I could look at them while brushing my teeth and every time I walked into the room. But the wall was not large enough!

What ended up working for me was to rotate the words such that I’d always have 28 words - 7 new words, 7 that were new 4 days ago, 7 a week ago, and 7 a month ago. This algorithm was very effective, yet labor intensive. I wondered if the computer could do a better job. Then, in Bozen, I had to learn German...

Here are some screenshots. The first shows the main window:

Vocabulary tests:

Vocabulary view with synonyms and meanings:

A mobile edition of the application is in the planning. However, the mobile edition is more of a companion edition to the desktop application. Users exercising their writing skills using the autocomplete editor (inherited from the NetBeans IDE) need to do so on their larger screens:

The sources of the application are here:

NetBeans Platform

I started thinking about using the NetBeans Platform when I was trying to provide the autocomplete feature for my JTextArea. I wondered how does NetBeans provide such a feature for Java? If only I could re-use its code...

Most useful about the NetBeans Platform is that everything you like in NetBeans IDE you can simply reuse. I totally ascribe to the notion of software re-use and that SE != plumbing. Plus, the window management system is phenomenal, and Maven support is on the rise.

At BarCamp Charleston, I recently presented a session entitled "SE != Plumbing" and invited the audience to learn about the NetBeans Platform, Maven, Java WebStart, and JPA2. I used Geertjan’s plumbing pictures to illustrate the point and made the same sound argument: you should develop your application with domain knowledge. That your application has a consistent user-friendly window manager, which remembers the previous user configuration is not your business, but users expect it nonetheless. I found it important to distinguish the NetBeans Platform as a framework, from the NetBeans Platform as a set of libraries, to convince the skeptical attendees of the benefits of porting their application to the NetBeans Platform.

Tips for NetBeans Platform Newbies

As with all software engineering, iterative refinement through small steps is a winning strategy. There are plenty of NetBeans Platform tutorials that do very powerful things. Run them and tinker with them until you reach your expectations.

The NetBeans Platform is not about starting from scratch. Change names of classes at the end, but when you do so, check after each change to make sure the application still runs because you’ll likely have to manually change the layer file, the module settings, as well as the POM files.

NetBeans Platform Wishlist

The improvements I'd like in the NetBeans Platform:

  • I’d like to tinker less and less with layer.xml in favor of annotations. Thankfully, NetBeans is moving in that direction.

  • More Maven support, but, because of Jesse Glick’s recent work, NetBeans seems to be the most supportive IDE.

  • Modules on demand. Right now my application is loaded with clusters full of modules I don’t want. An example is the embedded browser, which shows up if a user clicks on a hyperlink.  Fortunately I’m not alone:

The latter should move us farther from the NetBeans Platform, allowing NetBeans Platform code to be re-usable in web applications too.

Future of MemorizEasy

Instead of linear reference cards, I’d like to replace them with Mind Maps. In the absence of a module that generates mind maps (if anyone knows of any, please let me know) I’ve started writing my own using the Visual Library API.

Published at DZone with permission of its author, Gabriele Kahlout.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)


Alex Chumansky replied on Tue, 2011/05/31 - 11:53pm

What an amazing coincidence, Gabriele! I'm greatly interested both in development on NetBeans platform and studying foreing languages. I download and install your program. Thanks! Is there any way to start it localy? May be another distribution available? What the storage your program uses?

Alex Chumansky replied on Wed, 2011/06/01 - 12:05am

Is the method of remembering words your own? It's great I think! Why don't you make special field for word's transcription? Do you study NetBeans platform in the university?

Gabriele Kahlout replied on Sat, 2011/06/18 - 1:24pm

@Alex: thank you for your positive feedback. I invite you discuss MemorizEasy specific issues with me directly, from here. It's by coincidence that I found your comments here!

To answer your NB question, no I didn't study NetBeans Platform at the university. In the universities I've been to professors where pro Eclipse and Browser-based apps. As mentioned in the article, I preached NB at BarCamp CHS (which took place at the College of Charleston).

Mr Nurkhamid replied on Thu, 2011/09/15 - 9:31am

the link for the source code ( did not work.

Mateo Gomez replied on Thu, 2012/04/26 - 1:06am

great work...please fix the glitches mexican bread

Matt Coleman replied on Fri, 2012/04/27 - 1:36am in response to: Mr Nurkhamid

thanks for sharing the link for the source code...i have been looking for it graphic artist buffalo

Cata Nic replied on Mon, 2013/09/02 - 4:23am

 The vocabulary can be imported from various sources? I think is a good idea to use the Google's API too.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.