About Me

It's me, Arif N. In this blog I'll write about my adventure related to computer, programming, and anything that I found interesting. I wish you a happy reading.. :D

Category: English

One of my friends once told me that my previous theme wasn’t good for eyes. For your information, my previous theme, Dust, colored in maroon red. So I decided to change the theme into the universal color: white.

I did some research, founding some examples. And finally, wrote this theme. This time, I called the theme LeBlanc.

As usual, comments are always welcome.

bored with the internet (image courtesy of Randall Munroe of http://xkcd.com)

bored with the internet (image courtesy of Randall Munroe)

Source: http://xkcd.com

P.S. Livejournal is one of blog provider.

Hi there..

Long time ago, I got some challenge to create some MDI (Multiple Document Interface) application. Why I called it challenge? Because I must create it with Java and I didn’t have experience on using Swing. But thanks to Netbeans, it makes Swing gui development far easier.

Netbeans provided some tools for gui building. You just need to drag-and-drop, edit some properties, and adding some event-handling. Voila, your desktop application will be up and running. But there is a but. In MDI application, we’ll need a scrollable desktop pane. For your information, desktop pane is a home for all of child windows. If I dragged the child window outside the desktop pane, the desktop pane should automatically give scroll to facilitate it. Java have library to implement dekstop pane. It’s called JDesktopPane. But the usual JDesktopPane didn’t have support for auto-scrolling.

Gerald Nunn in Java World site write a way to conquer this deficiencies. He create some libraries that we can use to enhance the usual JDesktopPane. He called the object MDIDesktopPane. All we have to do are just download it, link it to our codes, and use it.

JFrame with MDIDesktopPane preview

JFrame with MDIDesktopPane preview

In Netbeans, these were I did:

  1. I extracted the sample code (library) into the same package with my gui package.
  2. Using gui builder tools provided by Netbeans, I created JFrame and inside it, I added JMenuBar, JItem, and JMenuItem as necessary.
  3. Using gui builder, Netbeans will generate function called initComponents. This function lists all of the variable declarations and gui setups for components added before.
  4. In the JFrame constructor, the initComponents function will be called. In this area, we will added the MDIDesktopPane init.
  5. Before that, I created MDIDesktopPane declaration. It will not far from this:
    private MDIDesktopPane desktop = new MDIDesktopPane();
    private JScrollPane scrollPane = new JScrollPane();

    We need JScrollPane because it will support the scrolling functions.

  6. Then, after the initComponents function, I added the MDIDesktopPane and the JScrollPane to the frame.
    jMenuBar1.add(new WindowMenu(desktop));
    scrollPane.getViewport().add(desktop);
    getContentPane().setLayout(new BorderLayout());
    getContentPane().add(scrollPane,BorderLayout.CENTER);

    FYI, jMenuBar1 was the variable name of my JMenuBar. It means I added WindowMenu of the MDIDesktop to the menu bar. WindowMenu was a class to control the display of all of the child menu like cascaded or tiled windows.

  7. It’s done. It’s simple, right.

With this MDIDesktopPane and WindowMenu class, I finally conquer the scrollable desktop pane. Thanks to Gerald Nunn for his great class.

Hiya… Finally, I created another design for my blog.. This time, it’s called Dust.

So, what do u think? I need some suggestions before I launch it for public release… Comments are always welcome..

If you see my theme coloured in blue right now, that means you are looking to my first (successful) themes. This themes created by me, and still under-development. For this time being, may be I’ll not release this theme to public. I have no confidence yet. But maybe I’ll do it someday.

Oke, I’ll explain about this theme. The name was Bluw. It was really simple theme, using two columns, consists of one sidebar and content. Maybe there’s some issues, but I’ll fix it in the process.

Any suggestions and comments are welcome…