Over a million developers have joined DZone.

5 Minutes: Putting a Memory Monitor in NetBeans IDE

· Java Zone

Discover how AppDynamics steps in to upgrade your performance game and prevent your enterprise from these top 10 Java performance problems, brought to you in partnership with AppDynamics.

Let's create a memory monitor for NetBeans IDE! "Geez. A memory monitor. That sounds hard. Where would one even begin?" Well, the answer to that question is the demo/management folder in the JDK. Handily, you'll find an application there called "MemoryMonitor". So I created a new module, used the Window Component wizard to create a TopComponent (specify that it should open in the "properties" position), copied the MemoryMonitor class from the demo into my source structure, and then added these lines to the TopComponent's constructor:
MemoryMonitor demo = new MemoryMonitor();
add(demo, java.awt.BorderLayout.CENTER);
demo.surf.start();
Thread thr = new Thread(new Memeater());
thr.start();

Plus, note that those lines actually come from the main method in the MemoryMonitor class. Since we don't need the main method anymore, we can plunder its content for whatever is relevant to us and then stick it in the TopComponent's constructor, as shown above. (You can then delete the main method, while leaving the rest of the MemoryMonitor class exactly as you found it.)

Then install the module! Before you do that, ponder this: "How much work have I actually done?" (Don't ponder too long, because the answer is that you've just done approximately 5 minutes of work and if you think about it too long you'll have spent more time thinking than working and, guess what, you could be porting another application instead.) Then... here's your new memory monitor in the IDE:

And you can detach it, of course, because of the undocking functionality of NetBeans IDE 6:

The monitor continually updates itself. How does it do that? No idea. I don't need to know that level of detail at all, unless I want to. That level of knowledge was completely irrelevant when porting the application to NetBeans IDE. I can be "clueless" about everything except for the tiny part of the module which concerns the integration with the NetBeans Platform. And all of that part was driven by a wizard. Now, let's see what other cool applications reside in the JDK's demo and sample folders...

 

The Java Zone is brought to you in partnership with AppDynamics. AppDynamics helps you gain the fundamentals behind application performance, and implement best practices so you can proactively analyze and act on performance problems as they arise, and more specifically with your Java applications. Start a Free Trial.

Topics:

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}